Я пытаюсь сделать простой сценарий выскочки для сервера 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
скрипт in, не уверенный, был ли он добавлен после какой-либо версии выскочки. Проверьтеman 5 init
на словоchdir
Кроме того, об ошибках, скорее всего, будет сообщено в / var / log / syslog. Вы можете немного увеличить уровень ошибки, запустив
man initctl
для большего количества уровней журнала.источник