Ich versuche, ein einfaches Upstart-Skript für den Teamspeak-Server zu erstellen, aber es funktioniert nicht.
Wenn ich sageinitctl startenes wird nur ausgeführt, aber nie beendet oder gibt sogar eine Nachricht aus. Dasselbe passiert fürstoppen.
Um sicherzugehen, dass ich nichts falsch mache, habe ich das Cron-Skript kopiert und versucht, es auszuführen, aber es passiert das Gleiche.
was mache ich hier falsch?
AKTUALISIEREN:
hier ist mein Skript für TS3:
# myservice - myservice job file
description "my service description"
author "Me <[email protected]>"
# Stanzas
#
# Stanzas control when and how a process is started and stopped
# See a list of stanzas here: http://upstart.ubuntu.com/wiki/Stanzas#respawn
# When to start the service
start on runlevel [2345]
# When to stop the service
stop on runlevel [016]
# Automatically restart process if crashed
respawn
# Essentially lets upstart know the process will detach itself to the background
expect fork
# Start the process
script
emit going into TS3 dir
chdir /home/danizmax/teamspeak3-server_linux-x86/
emit starting TS3
exec su -c "/home/danizmax/teamspeak3-server_linux-x86/ts3server_startscript.sh start" danizmax &
emit done
end script
Ich habe es sogar mit dem einfachsten Skript versucht, und das funktioniert auch nicht:
description "regular background program processing daemon"
start on runlevel [2345]
stop on runlevel [!2345]
expect fork
respawn
exec echo example
console output
Ich danke Ihnen für Ihre Hilfe.
Antwort1
es gibt eine Reihe Merkwürdigkeiten in Ihrem Emporkömmlingsjob, die mir Kopfzerbrechen bereiten.
1) emit ist kein Programm, das ich kenne. Wenn Sie es also nicht zum Systempfad hinzugefügt haben, verursacht es wahrscheinlich Fehler. Meinten Sie „echo“? Das ist möglicherweise auch nicht hilfreich, da es an die Systemkonsole geht, die möglicherweise nicht sichtbar ist.
2) Angenommen, die Strophe „emit“ funktioniert, sagen Sie „expect fork“, aber dann forken Sie tatsächlichzweimal. Einmal für das „Skript“ und dann noch einmal, wenn sich das Teamspeak-Skript in den Hintergrund verzweigt.
3) Sie führen das Skript mit „su“ aus, aber in den meisten Fällen ist „Start-Stop-Daemon“ eigentlich einfacher:
Mit 11.10 müssen Sie das chdir
In-Skript nicht ausführen. Ich bin mir nicht sicher, ob es nach der Version von Upstart hinzugefügt wurde, die Sie haben. Suchen Sie man 5 init
nach dem Wortchdir
start on runlevel [2345]
stop on runlevel [^2345]
respawn
chdir /home/danizmax/teamspeak-server
expect fork
exec start-stop-daemon --start --user danizmax --group danizmax --exec /home/danizmax/teamspeak3-server_linux-x86/ts3server_startscript.sh -- start
Außerdem werden Fehler wahrscheinlich in /var/log/syslog gemeldet. Sie können den Fehlerlevel erheblich erhöhen, indem Sie Folgendes ausführen:
initctl log-priority info
man initctl
für weitere Protokollebenen.