sigmaPi utworzono 20 maja 2014 utworzono 20 maja 2014 Czołem. Próbuję wymusić automatyczne uruchomienie usługi zaraz po włączeniu serwera. Zwykle wystarcza do tego chkconfig nazwaUslugi on, ew. z narzuceniem odpowiedniego "runlevel". Niestety jednej usługi nie mogę w ten sposób uruchomić. Co ciekawe, usługa ta wywołana ręcznie za pomocą /etc/init.d/nazwaUslugi start startuje bez problemu. W chkconfig --list nie doszukałem się żadnych nieprawidłowości - uruchamianie usługi jest włączone dla runlevel 2345, czyli teoretycznie powinna startować. Próbowałem rozwiązać ten problem poprzez próbę wywołania usługi z /etc/rc.d/rc.local - niestety z identycznym skutkiem. Co może być przyczyną takiego stanu rzeczy i jakie w tej sytuacji pozostają mi dostępne rozwiązania?
MasterYoghourt komentarz 22 maja 2014 komentarz 22 maja 2014 Być może jest to kwestia zależności od innej usługi. W uruchomionym systemie usługi, które miały się odpalić, już działają. Jesli chodzi o kolejność uruchamiania usług, to jak dobrze pamiętam skrypt inicjujacy daną usługę ma w nazwie numer kolejności. Tak było kiedyś, ale czy dla Red Hat/CentOS 6.5 nadal tak jest, nie wiem, poczytaj dokumentację/many. Druga sprawa, powinienes zaglądnąć wpierw w logi i zobaczyć czy twoja usługa nie pozostawiła po sobie jakiś komunikat, przy neudanej próbie uruchumienia. 1
sigmaPi komentarz 22 maja 2014 Autor komentarz 22 maja 2014 Dzięki za pokierowanie mnie na właściwe tory. Rzeczywiście, w logu programu zauważyłem błąd dostępu do ścieżki pliku wykonującego program. Usługa pozyskuje ją z wbudowanych w program funkcji Pythonowskich. Program jako usługa wywoływany jest przez: su $USER -s /bin/bash -m -c "$PYTHON $APPDIR/$APPEXECUTABLE" >> $LOG 2>&1 & Gdzie $USER=apache, $PYTHON=python2.7, $APPDIR=`python2.7 -c 'import program_env;program_env.getInstallDir()'`, $APPEXECUTABLE=prog_monitor.py. Problem w tym, że podczas uruchamiania usługi przy bootowaniu ścieżka z $APPDIR jest obcinana i zamiast pełnej zwracana jest tylko jej część: /src/bin zamiast /opt/program/src/bin. Jeszcze raz przypomnę, że gdy uruchomię usługę ręcznie z roota za pomocą /etc/init.d/nazwaUslugi start - wszystko gra. Póki co zastąpiłem zmienną $APPDIR ręcznie wpisaną ścieżką, co podnosi usługę automatycznie po starcie systemu. Niemniej zastanawia mnie przyczyna wystąpienia tego problemu. Z ciekawości przełączyłem się na użytkownika apache, w Pythonie zaimportowałem moduł programu i wywołałem getInstallDir(). O dziwo zwrócona została ścieżka prawidłowa. To samo gdy wywołam tą funkcję z roota.
Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!
Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.