Der Upstart-Dienst wird nie gestartet oder stoppt vollständig

Der Upstart-Dienst wird nie gestartet oder stoppt vollständig

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 chdirIn-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 initnach 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 initctlfür weitere Protokollebenen.

verwandte Informationen