【問題】プロセス「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」を利用することはお勧めできません。