web-dev-qa-db-ja.com

Linuxのプロセスをkillコマンドでpidn番号で再起動します。

さて、Linuxでプロセスを再起動できるようにしたいので、killのマンページを調べました。どうやら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

私は次のようにSIGSTOP信号(番号19)を使用し、次にSIGCONT信号(番号18)を使用することで望ましい効果が得られると考えました。

kill -19 $PID_NUMBER # It stops! Nice, we are reaching just what we wanted.
kill -18 $PID_NUMBER # Ok... it continues to death... that isn't funny though.

私も信号番号1を試してみました:SIGHUPほぼ同じ結果で、何か不足していますか?誰かが私が欲しいものに到達するために必要なものを知っていますか?

5
Rubén Marrero

「再起動」信号はありません。/proc/<pid>から環境(environ、cwd、cmdline、セキュリティコンテキスト…)を記録し、手動でプロセスを再開する必要があります。

SIGHUPは閉じていますが、設定によって規則によってのみ使用され、プログラムに設定を再ロードするように要求します。

5
user1686

「RELOAD」信号があります。

コンテナでsquidプロセスを再起動した場合、コンテナでpid 1を実行するsquidプロセスがあると想定します。ただし、次のように「再ロード」できます。

kill -HUP 1
0
user5723841