Ich habe eine Upstart-Conf-Datei in / etc / init, die gut startet, wenn ich sie manuell wie folgt starte:
sudo initctl start myconf
Wenn ich es ohne den Befehl sudo ausführe, erhalte ich den Fehler name = (unset) error, der auf Benutzerrechte zurückzuführen ist, aber das sollte nicht das Problem sein, wenn der Job beim Systemstart initialisiert wird, wenn Upstart richtig startet? (weil das alles von der Wurzel ausgeführt wird).
Der Inhalt des Skripts lautet:
start on runlevel [2345]
stop on runlevel [^2345]
exec /spatial/server_init.sh
... wo auf server_init.sh ein Python-Skript-basierter Server ausgeführt wird. Wenn ich den Status des Skripts direkt nach dem Anmelden bei der Shell überprüfe, heißt es Stopp / Warten. Ich habe auch die conf-Datei mit "start on net-device-up" ausprobiert, aber nichts ändert sich. Gibt es eine Möglichkeit, das Upstart-Systemprotokoll oder ähnliches anzuzeigen, um das Problem zu beheben?
Vielen Dank
chdir
in Ihrem Upstart-Skript haben und dieses Verzeichnis nicht existiert, wird kein Protokoll geschrieben und Sie erhalten die kryptische Nachricht:start: Job failed to start
Antworten:
Versuchen:
Möglicherweise möchten Sie es beim Debuggen in eine Aufgabe konvertieren.
dann von der Konsole:
quelle
Okay, einen Weg gefunden, aber es funktioniert nur, wenn der Fehler in dem Programm auftritt, das vom Skript ausgeführt wird (und wenn dieses Programm natürlich Fehlermeldungen zurückgibt), nicht Upstart selbst, aber das ist es, was ich in diesem Fall brauchte. Ich habe die Programmausgabe in eine Protokolldatei wie diese umgeleitet:
Was das andere betrifft, habe ich herausgefunden, dass Sie die Upstart-Ausführlichkeit erhöhen können. Wenn ich das brauche, fange ich von dort aus an.
quelle
Überprüfen Sie Ihre Upstart-Version anhand von: initctl version oder apt-cache policy upstart
Für alle Upstart-Versionen vor Version 1.4 war der Standardwert für die Konsole " Konsole keine" . Ab Upstart 1.4 ist der Standardwert das Konsolenprotokoll .
Beispiel:
Konsolenprotokoll
Skript
Skript beenden
Konsolenprotokoll - Verbindet die Standardeingabe mit / dev / null. Standardausgabe und Standardfehler sind mit einem Ende eines Pseudo-Terminals verbunden, sodass jede Jobausgabe automatisch in einer Datei im Verzeichnis / var / log / upstart / für Systemjobs und in $ XDG_CACHE_HOME / upstart / (oder $ HOME /) protokolliert wird. cache / upstart / wenn $ XDG_CACHE_HOME nicht gesetzt ist) für Sitzungsjobs.
Konsole keine - Verbindet die Deskriptoren für Standardeingabe, Standardausgabe und Standardfehlerdatei des Jobs mit / dev / null.
Weitere Informationen zur Konsole finden Sie unter folgendem Link:
http://upstart.ubuntu.com/cookbook/#console-log
quelle