Ich habe ein neues Skript zu /etc/init/
called hinzugefügt, minecraft.conf
das das Skript enthält:
start on startup
stop on shutdown
respawn
respawn limit 20 5
script
export HOME="/root"
exec /root/minecraft/start.sh 2>&1 >> /var/log/minecraft.log
end script
post-start script
echo "minecraft started"
Wenn ich versuche, start minecraft
erhalte ich den Fehler:start: Unknown job: minecraft
Ich habe versucht zu rennen initctl list
und mein Minecraft-Job ist nicht aufgeführt. Ich habe versucht zu rennen initctl reload-configuration
und es macht keinen Unterschied.
Andere Jobs, die in der Liste aufgeführt sind, initctl list
funktionieren einwandfrei beim Starten, Stoppen und Neustarten.
Warum wird mein neues Skript von upstart nicht angezeigt?
/etc/init.d/
?/etc/init
und jetzt können Sie upstart neu starten und verwenden."sudo start minecraft
ohne Probleme ausgegeben . Hier ist der Inhalt der Protokolldatei.~$ sudo cat /var/log/upstart/minecraft.log minecraft started /proc/self/fd/9: 3: exec: /root/minecraft/start.sh: not found minecraft started
Können Sie weitere Details zu der von Ihnen verwendeten Ubuntu-Version und nützliche Informationen von syslog bereitstellen?Antworten:
Überprüfen Sie die Upstart-Protokolle (in
/var/log/syslog
), während Sie die Konfiguration mit erneut ladeninitctl reload-configuration
. Wenn ein Syntaxfehler vorliegt, wird er dort angezeigt. Das ist normalerweise der Grund, warum Sie Ihre neue Startkonfiguration nicht verwenden können.quelle
Mit dem folgenden Befehl können Sie Ihre Skriptsyntax auf einfache Weise überprüfen:
Ich habe festgestellt, dass auch mit einer gültigen Upstart-Datei, wenn die Datei beim letzten Start des Servers nicht vorhanden war, der Server neu gestartet werden muss, damit Upstart die Datei anzeigen kann.
quelle
Ich fühle mich irgendwie dumm ... Aber hier ist es:
Ich habe die Zeilengruppe "end script" ganz am Ende des Upstart-Skripts verpasst ...
gewesen sein sollte
Ich bin mir nicht sicher, warum es bei @schkovich ohne das geklappt hat
end script
, obwohl ...quelle
In meinem Fall war es ein leeres
author
Feld, wie folgt:Es funktionierte nur, nachdem etwas in den Anführungszeichen hinzugefügt wurde.
warf auch
/etc/init/servicename.conf:2: Expected token
zu Syslog anstelle von stdout . Zu beschäftigt, um einen Fehlerbericht für ein sterbendes Paket einzureichen.quelle
Dies
restart
trifft möglicherweise nicht speziell zu, ist jedoch erwähnenswert: Wenn Sie eine Upstart-Konfigurationsdatei für einen ausgeführten Dienst bearbeiten, wird die Konfiguration durch Ausführen von NICHT neu geladen. Sie müssen laufenstop
undstart
neue Änderungen wirksam werden.http://upstart.ubuntu.com/cookbook/#restart
quelle