Ich habe folgenden Job in /etc/init/collector
:
start on runlevel [2345]
stop on runlevel [!2345]
expect daemon
exec /usr/bin/twistd -y /path/to/my/tac/file
Wenn ich den Job mit beginne sudo service collector start
, hängt er. Wenn ich ctrl-c
und renne initctl list
, sehe ich das:
collector start/killed, process 616
Ich kann keine Instanz des twistd
Daemons in ps sehen, und der HTTP-Server, den er bereitstellen soll, existiert nicht.
Ich habe dies sogar ohne 'Expect Daemon' und mit einem einfachen Aufruf eines einzeiligen Bash-Skripts unter Verwendung einer script
Zeilengruppe versucht, und es funktioniert immer noch nicht. Ich glaube, ich mache etwas sehr Falsches. Was könnte es sein?
expect daemon
Linie zu tun hat .Antworten:
Sie können
stdout
undstderr
der gesamten Shell mit demscript
Pragma (anstelle vonexec
) in Verbindung mitexec >FILE 2>&1
wie folgt umleiten :Das sollte Ihnen hoffentlich einen besseren Einblick geben, was los ist. Ich fand dies nützlich, um alle möglichen Probleme in meinen Startskripten zu erkennen. Sie können die
stdout
/ Ihre Befehlestderr
direkt weiterleiten, aber Sie werden Fehler verpassen, die von der Shell ausgehen (wie Syntaxfehler).Auf der anderen Seite, wenn
service
es hängt, trifft es möglicherweise nicht einmal Ihr Skript. In diesem Fall hilft natürlich nichts davon.quelle
logger
, so dass ich einfach nachlassen konnte/var/log/syslog
.dmesg
. Ich habe dies herausgefunden, nachdem ich bei Verwendung der oben genannten Informationen keine Ausgabe erhalten habe. Ich hatte einen Tippfehler in der chdir-Direktive gemacht.Es gibt auch das
console log
Deklarativ, wie hier definiert: http://upstart.ubuntu.com/cookbook/#console-logIch weiß nicht genug über Upstart, um zu wissen, ob es standardmäßig aktiviert ist, aber Sie können es pro Upstart-Job aktivieren, es wird standardmäßig ausgegeben an
/var/log/upstart/<job>.log
quelle
Überprüfen Sie, ob Upstart Director vorhanden ist, und fügen Sie vor der Skriptphase ein Konsolenprotokoll hinzu. (In der Upstart-Version ab 1.4 ist dies die Standardeinstellung.)
Konsolenprotokoll
script exec> / path / to / some_log_file 2> & 1 exec your_command_here end script
Weitere Informationen finden Sie im Thread: /ubuntu/207143/how-to-diagnose-upstart-errors/932155#932155
quelle