信号処理に関するGNUドキュメントから:
SIGUSR1およびSIGUSR2信号は、任意の方法で使用できるように確保されています。これらは、シグナルを受信するプログラムでシグナルハンドラーを作成する場合に、単純なプロセス間通信に役立ちます。「別のプロセスのシグナリング」セクションに、SIGUSR1とSIGUSR2の使用法を示す例があります。
デフォルトのアクションは、プロセスを終了することです。
SIGINFOのデフォルトのアクションは何もしないことなので、より適切な場合があります。
SIGINFO:情報リクエスト。4.4 BSDおよびGNUシステムでは、ユーザーが標準モードでSTATUS文字を入力すると、この信号は制御端末のフォアグラウンドプロセスグループ内のすべてのプロセスに送信されます。信号の原因となる文字のセクションを参照してください。プロセスがプロセスグループのリーダーである場合、デフォルトのアクションは、システムとプロセスが実行していることに関するステータス情報を出力することです。それ以外の場合、デフォルトでは何もしません。
SIGHUPは、制御端末が閉じられたときに発行されますが、ほとんどのデーモンは端末に接続されていないため、「リロード」として使用することは珍しくありません。
デーモンプログラムは、SIGHUPをシグナルとして使用して、自身を再起動することがあります。これの最も一般的な理由は、変更された構成ファイルを再読み取りすることです。
ところで、ウォッチドッグは、プロセスを再起動する必要があるかどうかを知るために、構成ファイルを時々読み取る可能性があります。
ウォッチドッグの私の個人的なお気に入りはスーパーバイザーです。
$ supervisorctl start someapp
someapp: started
$ supervisorctl status someapp
someapp RUNNING pid 16583, uptime 19:16:26
$ supervisorctl stop someapp
someapp: stopped
プラットフォーム上の信号のリストを返すかどうかkill -l
を確認し、それらのいくつかを試してください。ただし、SIGUSR1は悪い選択のようです。
$ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
[アップデート]
Carpetsmokerは、LinuxとBSDの動作の違いについて次のようにコメントしています。
SIGINFOは、GNUlibcとBSDでは動作が異なるようです。BSDでは、説明どおりに機能しますが、Linuxでは、存在しないか、SIGPWRと同じです... GNU libcのマニュアルは、この点で正しくないようです(kill-l出力にもSIGINFOが表示されません) )... GNUがそれをサポートしていない理由はわかりません。なぜなら、それは非常に便利だと思うからです... – Carpetsmoker