W następstwie tego pytania napisałem prostą usługę upstart ( /etc/init/pms.conf ) dla mojego bezgłowego urządzenia Ubuntu Server 11.04 w następujący sposób:
start on filesystem and net-device-up IFACE=eth0
stop on runlevel [016]
respawn
exec /home/administrator/pms-current/PMS.sh
Mogę uruchomić (lub zatrzymać) tę usługę do woli z wiersza poleceń:
service pms start
I widzę, że to naprawdę działa.
Jednak po pierwszym uruchomieniu komputera usługa się nie uruchamia. Jeśli wstawię SSH w pole i sprawdzę status usługi, otrzymam:
$ service pms status
pms stop/waiting
Moje pytanie brzmi: dlaczego tak się dzieje? Dlaczego moja usługa nie rozpoczyna się po uruchomieniu?
AKTUALIZACJA 1 : nie jestem pewien, czy moja usługa została uruchomiona, a następnie umarła, czy po prostu nie była wcale uruchamiana, dodałem następujące informacje do PMS.sh:
echo "STARTED" > $STARTLOG
To oczywiście daje mi coś do poszukiwania. Przetestowałem to, sam uruchamiając usługę, a następnie sprawdzając start.log . Następnie usunąłem plik start.log i uruchomiłem ponownie. Nie było go po ponownym uruchomieniu, więc wydaje się, że upstart zdecydowanie nie uruchamia mojej usługi. Przypuszczam, że może umrzeć na wcześniejszym etapie procesu, ale wydaje się to mało prawdopodobne, biorąc pod uwagę prostotę tego wszystkiego.
AKTUALIZACJA 2 : Właśnie zaktualizowałem do wersji 11.10, która obejmuje aktualizację upstart, ale ten problem nadal występuje.
AKTUALIZACJA 3 : Zgodnie z życzeniem uruchomiłem system --debug
. Dane wyjściowe kota /var/log/syslog | grep init
są zbyt długie, aby umieścić je w pytaniu, ale można je zobaczyć tutaj .
AKTUALIZACJA 4 : Więcej dzienników, tym razem konfekcja upstart znajduje się na górze. Uruchom 1 i uruchom 2 .
cat /var/log/syslog | grep init
po włączeniu rejestrowania rozruchu w celu uruchomienia przy użyciu instrukcji z Upstart Debugging