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

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

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

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

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

ОБНОВЛЕНИЕ:

Вот мой сценарий для TS3:

# myservice - myservice job file
description "my service description"
author "Me <myself@i.com>"

# 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

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

11
задан 28 October 2011 в 10:51

1 ответ

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

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

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

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

С 11.10 вам не нужно делать chdir в скрипте, не уверен, что это было добавлено после того, какая версия выскочки у вас есть. Проверьте 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 для большего количества уровней регистрации.

0
ответ дан 28 October 2011 в 10:51

Другие вопросы по тегам:

Похожие вопросы: