Я пытаюсь сделать простой сценарий выскочки для сервера 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
Спасибо за вашу помощь.
В твоей выскочки работе есть ряд странностей, которые заставляют меня чесать голову.
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
для большего количества уровней регистрации.