Upstart サービスは完全に起動または停止しない

Upstart サービスは完全に起動または停止しない

Teamspeak サーバー用の簡単な upstart スクリプトを作成しようとしていますが、うまく動作しません。

私が言ったらinitctl 開始実行はされるが、終了せず、メッセージも出力されない。同じことが停止

何か間違ったことをしていないか確認するために、cron スクリプトをコピーして実行してみましたが、同じ結果になります。

ここで何を間違えているのでしょうか?

アップデート:

TS3 用のスクリプトは次のとおりです。

# myservice - myservice job file
description "my service description"
author "Me <[email protected]>"

# 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

あなたの新進気鋭の仕事には、私を困惑させるような奇妙な点がいくつもあります。

1) 放出は私が知っているプログラムではないので、システム パスに追加していない限り、おそらくエラーの原因になります。 'echo' を意味していましたか? これも役に立たないかもしれません。システム コンソールに送られるため、表示されない可能性があります。

2) 「emit」スタンザが機能すると仮定すると、「forkを期待する」と言っているが、実際にはforkする2回一度は「スクリプト」用、そして Teamspeak スクリプトがバックグラウンドにフォークするときにもう一度実行されます。

3) スクリプトを実行するには「su」を使用しますが、ほとんどの場合、start-stop-daemon の方が簡単です。

11.10では、スクリプトを実行する必要はありませんchdir。upstartのバージョンが何であれ、それが追加されたかどうかはわかりません。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ログ レベルをさらに増やします。

関連情報