Mam następującą pracę w /etc/init/collector
:
start on runlevel [2345]
stop on runlevel [!2345]
expect daemon
exec /usr/bin/twistd -y /path/to/my/tac/file
Kiedy zaczynam pracę sudo service collector start
, zawiesza się. Jeśli ctrl-c
i biegnę initctl list
, widzę to:
collector start/killed, process 616
Nie widzę instancji twistd
demona w ps, a serwer HTTP, który powinien zapewniać, nie istnieje.
Próbowałem nawet tego bez „oczekiwanego demona” iz prostym wywołaniem do jednowierszowego skryptu bash przy użyciu script
zwrotki, i nadal nie działa. Myślę, że robię coś bardzo złego. Co to mogło być?
expect daemon
linią.Odpowiedzi:
Można przekierować
stdout
istderr
całej skorupy przy użyciuscript
pragma (zamiastexec
) w połączeniu zexec >FILE 2>&1
, tak jak poniżej:Powinno to dać lepszy wgląd w to, co się dzieje. Uznałem to za przydatne do wychwytywania różnego rodzaju problemów w moich skryptach upstart. Państwo może rura Twój polecenia użytkownika
stdout
/stderr
bezpośrednio, ale będziesz przegapić błędów pochodzących z powłoki (np błędy składniowe).Z drugiej strony, jeśli
service
się zawiesi, może nawet nie uderzyć w twój skrypt, w którym to przypadku oczywiście nic nie pomoże.źródło
logger
, aby móc po prostu ogonić/var/log/syslog
.dmesg
. Dowiedziałem się tego, gdy nie otrzymałem żadnych danych wyjściowych, gdy korzystam z powyższego. Napisałem literówkę w dyrektywie chdir.Istnieje również
console log
deklaratywny, jak zdefiniowano tutaj: http://upstart.ubuntu.com/cookbook/#console-logNie wiem wystarczająco dużo na temat upstartu, aby wiedzieć, czy jest on domyślnie włączony, ale możesz go włączyć dla poszczególnych zadań upstart, domyślnie wyświetli się
/var/log/upstart/<job>.log
źródło
Sprawdź, czy istnieje istniejący dyrektor i dodaj dziennik konsoli przed fazą skryptu. (w wersji upstart wyższej niż 1.4 jest to ustawienie domyślne)
dziennik konsoli
script exec> / path / to / some_log_file 2> & 1 exec skrypt_konieczny_końca
Aby uzyskać więcej informacji sprawdź wątek: /ubuntu/207143/how-to-diagnose-upstart-errors/932155#932155
źródło