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

11

Я пытаюсь сделать простой сценарий выскочки для сервера 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

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

danizmax
источник
Возможно, вы захотите показать задание, которое вы пытаетесь запустить, чтобы мы могли его отладить? Трудно понять, почему он висит, не видя этого.
Сленгасек
Я скопировал скрипт cron и попытался запустить его, и это происходит так же, просто останавливается и никогда не возвращается в оболочку
danizmax
Нам все еще нужно увидеть ваш сценарий выскочки. Без этого мы ничего не сможем сделать. Пожалуйста, опубликуйте его или предоставьте нам ссылку на него.
HGGDH
Не видя сценария, все, что я могу сделать, это угадать: заботится ли ваш сценарий о том, что он запускается как root при запуске? Путь Корня отличается. Если ваш сценарий хочет использовать приложение, которого нет в PATH root, вы должны указать полный путь. Есть ли в вашем скрипте прога, которая не возвращается?
Вальтинатор
См. Askubuntu.com/questions/14810/…
вальтинатор

Ответы:

1

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

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

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

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

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

SpamapS
источник
Не OP, но он использует (danimaz) su для запуска сервера от имени своего пользователя, а не для того, чтобы стать пользователем root.
Хавьер Ривера
Ха-ха, пропустил полосу прокрутки внизу .. идеально выровнен, чтобы скрыть имя пользователя. :-P
SpamapS