過去問ドリル

LinuCレベル1 Linuxのインストールと仮想マシン・コンテナの利用 問35

Linuxのインストールと仮想マシン・コンテナの利用/プロセスの生成、監視、終了

プロセス名が nginx に一致するプロセスについて、シグナルは送らずにPIDだけを一覧表示したい。コマンドとして適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル1の出題範囲「Linuxのインストールと仮想マシン・コンテナの利用」に対応。実際の試験問題ではありません)

正解:B

解説

pgrep は、プロセス名などの条件に一致するプロセスを探し、そのPIDを表示するコマンドです。-l を付けるとプロセス名も、-u ユーザー名 を付けると特定ユーザーのプロセスに絞り込めます。同じ条件指定の方法でシグナルを送るのが pkill で、両者は対になっています。ps の出力を grep で絞り込む方法と違い、grep 自身のプロセスが結果に混ざらない点も便利です。

選択肢ごとの解説

  • A誤り。pkill は名前などの条件に一致するプロセスにシグナル(既定はSIGTERM)を送るコマンドで、実行すると nginx が終了してしまいます。
  • B正しい。条件に一致するプロセスのPIDを表示するだけで、シグナルは送りません。
  • C誤り。killall は指定した名前のプロセスすべてにシグナル(既定はSIGTERM)を送るコマンドで、PIDを一覧表示するためのものではありません。
  • D誤り。pstree -p はすべてのプロセスの親子関係をPID付きの木構造で表示するもので、nginx のプロセスだけを絞り込んで表示するものではありません。
LinuCレベル1の問題を演習モードで解く