upstart / initctlはジョブを再起動するためにどのシグナルを使用しますか?


10

どのようなシグナルますupstart/ initctl使用ジョブを再開するには?さらに、SIGHUPを使用するように指定する方法はありますか?

または、reloadSIGHUPを送信するカスタムコマンドを定義する方法はありますか?それともupstart、そのために外に出る必要がありますか?


SIGQUITだと思います。SIGHUPへの応答は、ほとんどの場合アプリケーション固有です。
Chris S

それは理にかなっています。私の説明の編集を見てください。
David Eyk

回答:


23

ジョブを再開するためにupstart / initctlはどのシグナルを使用しますか?

SIGTERM

$ strace -fp `pgrep cron` 2> ~/strace &
$ initctl restart cron
$ cat ~/strace
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {0x804a280, [CHLD], SA_RESTART}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({60, 0}, {57, 153662204})     = ? ERESTART_RESTARTBLOCK (To be restarted)
--- SIGTERM (Terminated) @ 0 (0) ---
Process 2275 detached

さらに、SIGHUPを使用するように指定する方法はありますか?

使用する: initctl reload

あるいは、SIGHUPを送信するカスタムの再読み込みコマンドを定義する方法はありますか?

使用する: initctl reload

それとも、それを行うために新興企業の外に出る必要がありますか?

使用initctl reloadまたはkill/killall -HUP


非常に徹底しています。ありがとうございました。manページでそのいくつかを見つけることができたと思います!
David Eyk

サービスが時間内に停止しない場合は、SIGKILLにアップグレードされます。「ジョブの停止にはSIGTERMの送信が含まれます。...ただし、サービスにkillタイムアウト秒(デフォルトでは5秒)以上かかる場合は、SIGKILLが送信されます」upstart.ubuntu.com/cookbook/#pre-stop
scipilot
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.