Служба Upstart ніколи не починається і не припиняється повністю


11

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

Коли я кажу 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

Дякую за твою допомогу.


Можливо, ви захочете показати початкову роботу, яку ви намагаєтеся запустити, щоб ми могли її налагодити? Важко зрозуміти, чому він висить, не бачачи.
slangasek

Я скопіював сценарій cron і спробував запустити його, і це відбувається те саме, просто зупиняється і ніколи не повертається до оболонки
danizmax

Нам ще потрібно переглянути ваш сценарій на початку. Без цього ми нічого не можемо зробити. Будь ласка, опублікуйте його або надайте нам посилання на нього.
hggdh

Не бачачи сценарій, все, що я можу зробити, це здогадатися: чи ваш сценарій піклується про те, щоб він був запущений як root на початку? POTH кореня відрізняється. Якщо ваш сценарій хоче використовувати програму, яка не знаходиться в корені PATH, ви повинні вказати повний шлях. Чи є у вашому сценарії прога, яка не повертається?
waltinator

Відповіді:


1

У вашій роботі на вищому рівні є ряд дивацтв, які мене чухають по голові.

1) emit - це не програма, про яку я знаю, тому, якщо ви не додали її до системного шляху, це означає, що це викликає помилки. Ви мали на увазі «ехо»? Це теж не може бути корисним, оскільки воно перейде до системної консолі, яка може бути не видно.

2) Припускаючи, що строфа "випромінювати" працює, ви кажете "очікуйте вилку", але потім насправді вилка двічі . Один раз для "скрипту", а потім знову, коли командний скрипт виводиться на задній план.

3) ви "су" запускаєте скрипт, але старт-стоп-демон насправді простіший у більшості випадків:

З 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 для отримання більше рівнів журналу.


Не OP, але він використовує (danimaz) su для виконання сервера як свого користувача, а не для того, щоб стати root.
Хав'єр Рівера

Так, пропустив смугу прокрутки внизу .. ідеально вирівняний, щоб приховати ім’я користувача. :-P
SpamapS
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.