Ich versuche, ein einfaches Startskript für den Teamspeak-Server zu erstellen, kann es aber nicht zum Laufen bringen.
Wenn ich initctl start sage, wird es nur ausgeführt, aber nie beendet oder gibt sogar eine Nachricht aus. Gleiches passiert für Stop .
Um sicherzugehen, dass ich nichts falsch mache, habe ich das Cron-Skript kopiert und versucht, es auszuführen, aber es passiert genauso.
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
Danke für deine Hilfe.
Antworten:
Es gibt eine Reihe von Kuriositäten in Ihrem Emporkömmling, die mich am Kopf kratzen lassen.
1) emit ist kein mir bekanntes Programm. Wenn Sie es also nicht zum Systempfad hinzugefügt haben, verursacht dies wahrscheinlich Fehler. Meinten Sie "Echo"? Dies ist möglicherweise auch nicht hilfreich, da es zur Systemkonsole geht, die möglicherweise nicht sichtbar ist.
2) Angenommen, die Zeilengruppe 'emit' funktioniert, sagen Sie 'Fork Fork', aber dann tatsächlich zweimal . Einmal für das 'Skript' und dann wieder, wenn sich das Teamspeak-Skript selbst in den Hintergrund stellt.
3) Sie "su", um das Skript auszuführen, aber Start-Stopp-Daemon ist in den meisten Fällen tatsächlich einfacher:
Mit 11.10 müssen Sie das
chdir
In-Skript nicht mehr ausführen. Sie sind sich nicht sicher, ob dies nach einer beliebigen Version des Upstarts hinzugefügt wurde. Suchen Sieman 5 init
nach dem Wortchdir
Außerdem werden Fehler wahrscheinlich in / var / log / syslog gemeldet. Sie können die Fehlerquote durch Ausführen erheblich erhöhen
man initctl
für mehr Protokollebenen.quelle