here 1から始まるSIGNAL番号が表示されるため、基本的に、「0」が表す信号は何ですか。
...この特別なシグナルに関するドキュメントを見つけるのは難しいかもしれません。他の人が言ったことにも関わらず、Debianベースのシステムのman 1 kill
でこのシグナルについて言及しているのは以下だけです:
特に有用な信号には、HUP、INT、KILL、STOP、CONT、および0が含まれます。
特に信号が何をするのかまだわからない場合は特に役立ちません。 kill -l
の出力にもリストされていないので、すでに知っていない限り、あなたはそれについて知ることはありません。
DebianおよびUbuntuシステムでは、man 2 kill
の出力の一部は次のようになります。
Sigが0の場合、シグナルは送信されませんが、エラーチェックは実行されます。これを使用して、プロセスIDまたはプロセスグループIDの存在を確認できます。
kill -0
を使用して、プロセスが実行されているかどうかを確認できます。これらの例を検討してください。
# Kill the process if it exists and accepts signals from
# the current user.
sleep 60 &
pid=$!
kill -0 $pid && kill $pid
# Check if a PID exists. When missing, this should result
# in output similar to:
# bash: kill: (6228) - No such process
# Exit status: 1
kill -0 $pid; echo "Exit status: $?"
kill -0
を使用して、現在のユーザーが特定のプロセスに信号を送る許可を持っているかどうかを判断することもできます。例えば:
# See if you have permission to signal the process. If not,
# this should result in output similar to:
# bash: kill: (15764) - Operation not permitted
# Exit status: 1
Sudo sleep 60 &
kill -0 $!; echo "Exit status: $?"
このコマンドは、$ pidにPIDがあるプロセスが生きているかどうかをチェックします。
Kill -0 $ pidは、pidを持つプロセスが存在するかどうかを確認します。
'kill -0 $ pid'を使用してプロセスの存在を確認するときは注意してください
目的のプロセスが終了すると、そのpidを新しく作成された他のプロセスに割り当てることができます。 (だから、特定のプロセスが生きているかどうかはわからない)
ゾンビプロセスの場合、親がwaitを呼び出すのを子が待っています。ここでは、$ pidを保持し、そのプロセスが実行されていない間に肯定的な結果を返します。
http://djangstorm.com/Content/kill.html 。エラーチェック。ここでは、ユーザーがコマンドを実行するために使用できる特権を示します。
Kill -0 $ pidは、$ pidで実行されているプロセスが生きているかどうかを確認するために使用されます。ただし、プロセスが終了して新しいプロセスが実行されると、プロセスIDを再割り当てできるため、これは難しい場合があります。 killall -0を使用して、特定のプロセスが実行されているかどうかを確認できます。