Marの人生の一片

Marの人生の一片

アメブロから引っ越しました!大阪→鹿児島→京都→東京→京都と渡り歩いた、子育て中年サラリーマンの備忘録です

プロセス「process」を「$ kill -9 process」として終了させた。この終了方法

【問題】プロセス「process」を「$ kill -9 process」として終了させた。この終了方法は、あまり良くない方法である。その理由として適切なものを選択しなさい。

1. プロセスの終了処理が実行されないから

2. 他のプロセスまで終了されてしまうから

3. ダンプファイルが作成されるから

4. プロセスが破壊される可能性があるから

正解は「1」。

【解説】killコマンドはプロセスにシグナルを送るためのコマンドです。シグナルとは、「終了」や「強制終了」といった命令のことです。killコマンドは、psコマンドでプロセス番号を確認した上で次のように実行します。

$ kill -<シグナル名> <プロセス番号>
$ kill -<シグナルID> <プロセス番号>

ここで、「シグナル名」や「シグナルID」を省略して実行すると、自動的にシグナル「SIGTERM(シグナルID 15)」が適用されます。プロセスを終了させるためには、通常シグナル「SIGTERM」を利用します。しかし、プロセスの暴走などにより、シグナル「SIGTERM」ではプロセスを終了できないこともあります。そのような場合は、シグナル「SIGTERM」の代わりにシグナル「SIGKILL(シグナルID 9」を利用して、プロセスを終了させます。プロセス(プログラム)によっては、次回起動時に備えてプログラムの状態を保存(終了処理)するものもあります。シグナル「SIGKILL」を使ってプロセスを終了させると、プロセスが終了処理する間もなく強制的に終了させられます。したがって、不用意にシグナル「SIGKILL」を利用することはお勧めできません。