Служба Upstart никогда не запускается и не останавливается полностью

Служба Upstart никогда не запускается и не останавливается полностью

Я пытаюсь создать простой скрипт upstart для сервера TeamSpeak, но не могу заставить его работать.

Когда я говорюзапуск initctlон просто выполняется, но никогда не завершается и даже не выдает никаких сообщений. То же самое происходит и состанавливаться.

Чтобы убедиться, что я не делаю ничего неправильного, я скопировал скрипт cron и попытался запустить его, но результат тот же.

что я здесь делаю не так?

ОБНОВЛЯТЬ:

вот мой скрипт для 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

Я пробовал даже с самым простым скриптом, но он тоже не работает:

description     "regular background program processing daemon"

start on runlevel [2345]
stop on runlevel [!2345]

expect fork
respawn

exec echo example
console output

Спасибо за помощь.

решение1

В вашей начинающей работе есть ряд странностей, которые заставляют меня чесать голову.

1) emit — это не та программа, о которой я знаю, так что если вы не добавили ее в системный путь, то это, вероятно, вызывает ошибки. Вы имели в виду 'echo'? Это тоже может быть бесполезно, так как она перейдет в системную консоль, которая может быть не видна.

2) Предполагая, что строфа «выделить» работает, вы говорите «ожидать форк», но затем фактически форкдважды. Один раз для «сценария», а затем еще раз, когда скрипт TeamSpeak переходит в фоновый режим.

3) Вы используете «su» для запуска скрипта, но start-stop-daemon на самом деле проще для большинства случаев:

С 11.10 вам не нужно делать chdirin script, не уверен, что это было добавлено после той версии upstart, которая у вас есть. Проверьте man 5 initсловоchdir

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

Также, ошибки, скорее всего, будут сообщаться в /var/log/syslog. Вы можете значительно увеличить уровень ошибок, запустив

initctl log-priority info

man initctlдля получения дополнительных уровней журнала.

Связанный контент