LinuCレベル1 101試験の例題と解説
1.01.4プロセスの生成、監視、終了
LinuCレベル1101試験の出題範囲から、「1.01.4 プロセスの生成、監視、終了」についての例題を解いてみます。プロセスにシグナルを送信する方法について確認しておきましょう。
例題
プロセスIDが95264のプロセスに対し、オプションを指定せずにkillコマンドを用いてプロセスを終了しようとしたところ、プロセスを停止することができなかった。
プロセスを強制的に終了できる選択肢を全て選択してください。
- kill -SIGTERM 95264
- kill -SIGKILL 95264
- kill -9 95264
- kill -s 15 95264
※この例題は実際の試験問題とは異なります。
解答と解説
正解は、「2. kill -SIGKILL 95264」と「3. kill -9 95264」です。
killコマンドは、実行しているプロセスを終了するコマンドです。
kill コマンドの構文は以下の通りです。
kill [オプション] プロセスID
kill コマンドのオプションではシグナルを指定することができます。
シグナルの指定方法には以下の3通りあります。
kill -SIGシグナル名 PID
kill -s [シグナル名|シグナル番号] PID
kill -[シグナル名|シグナル番号] PID
よく利用するシグナルには以下のようなものがあります。
シグナル名 | シグナル番号 | 説明 |
HUP | 1 | ハングアップ(端末の切断)シグナル |
INT | 2 | キーボードからの割り込みシグナル |
QUIT | 3 | キーボードからの中止シグナル |
KILL | 9 | 強制終了シグナル |
ALRM | 14 | タイマーによる終了シグナル |
TERM | 15 | 終了シグナル(デフォルト設定) |
CONT | 18 | 一時停止しているプロセスの再開シグナル |
STOP | 19 | 一時停止シグナル |
TSTP | 20 | 端末からの一時停止シグナル |
選択肢の解説は以下です。
1.kill -SIGTERM 95264
誤りです
-SIGTERMは、終了シグナルです。
killコマンドをオプション指定なしで実行した際に適用されるデフォルトのシグナルとなります。
今回は、デフォルトのシグナル(TERM)では終了できなかったプロセスを強制終了するシグナルを答える問題のため、不正解となります。
2.kill -SIGKILL 95264
正解です。
-SIGKILLは、実行しているプロセスやジョブを強制終了することのできるシグナルです。
よって正解となります。
3.kill -9 95264
正解です。
オプションで指定されている9は、シグナルKILLのシグナル番号です。選択肢のように、シグナル番号でシグナルを指定することも可能です。
KILL(9)は、実行しているプロセスを強制終了することのできるシグナルのため、正解となります。
4.kill -s 15 95264
誤りです。
オプションで指定されている15は、シグナルTERMのシグナル番号です。
選択肢のように、-sオプションの引数としてシグナル番号を用いて、シグナルを指定することも可能です。TERM(15)はkillコマンドをオプション指定なしで実行した際に適用されるデフォルトのシグナルとなります。
今回は、デフォルトのシグナル(TERM)では終了できなかったプロセスを強制終了するシグナルを答える問題のため、不正解となります。
killコマンドで利用できるシグナルは、今回紹介したもの以外にも様々あります。
状況に合わせて利用できるよう確認しておきましょう。
例題作成者
株式会社デージーネット OSS研究室 橋本知里