Linux・シェル4 択難易度 基礎

kill 1234 と kill -9 1234 の違いは?

正答

  1. kill はプロセスを一時停止させ、-9 は完全に終了させる
  2. kill は対象のプロセスだけを、-9 は子プロセスもまとめて終了させる
  3. kill は SIGTERM で終了を依頼し、-9 は SIGKILL で強制終了する
  4. どちらも同じ SIGTERM で、-9 は 9 秒待ってから終了させる

解説

kill はプロセスにシグナルを送るコマンドで、番号を省くと SIGTERM(15)が送られる。SIGTERM はプロセス側で受け取って、ファイルを閉じるなどの後始末をしてから終了できる。SIGKILL(9)はカーネルが直接プロセスを止めるため捕捉も無視もできず、即座に消えるが後始末は行われない。まず kill で終了を依頼し、応答しないときだけ -9 を使うのが安全な順序である。一時停止は SIGSTOP で別のシグナルである。

参考: man7.org

killsignal

この問題を含む Linux・シェル のテストを制限時間つきで解く

Linux・シェルクイズへ