Linuxのプロセスとジョブについて

こんにちは!

今回はLinuxのプロセスとジョブについてまとめます。

プロセス

  • OSから見た実行中のプログラムを管理する単位
  • 固有のプロセスID(PID)によって管理される
  • プロセスIDは生成されてから終了するまで変化しない

psコマンド

  • 実行中のプロセスを確認する
オプション 効果
a 自分以外のユーザーのプロセスも表示
x ターミナルに関連付けられていないバックグラウンドのプロセスも表示
u プロセスが使用しているCPUやメモリなどを表示
f プロセスの親子関係をツリーで表示
  • ps auxを定型句として覚えておくと良い

killコマンド

  • 指定したプロセスIDのプロセスに任意のシグナルを送信する

Ctrl+Cで終了しないプロセスを終了させる

  • 別のターミナルからpsコマンドで、終了させたいプロセスのプロセスIDを調べる
    • プロセス名が分かっている場合は、pgrep プロセスIDでもよい
  • kill プロセスIDで強制終了させる

より強力な強制終了

  • kill -9 プロセスID または kill -KILL プロセスID

ジョブ

  • シェルから見た処理の単位
  • 単一のコマンドから構成される場合と、複数のコマンドから構成される場合がある
  • バックグラウンドジョブとフォアグラウンドジョブに分けられる

フォアグラウンドジョブ

  • 通常通り入力したコマンドはフォアグラウンドジョブとなる
  • 画面を占有する

バックグラウンドジョブ

  • 起動時にコマンドの末尾に&を付けるとバックグラウンドジョブとなる
  • 画面を占有しない

ジョブの一時停止

  • フォアグラウンドジョブを終了せずに、一時的にシェルに戻るにはCtrl+Zでジョブを一時停止する
  • 一時停止したジョブはjobsコマンドで確認できる
  • jobsコマンドのジョブにはジョブ番号が振られている

ジョブの再開

  • 一時停止したジョブを再開するコマンドにはfgbgがある
コマンド 動作
fg ジョブ番号 フォアグラウンドで再開
bg ジョブ番号 バックグラウンドで再開

おわりに

今回はLinuxのプロセスとジョブについてまとめました。ジョブの一時停止や再開といった機能は以前も学習しましたが、実際には使ったことがなかったです。今回の学習で大分理解できたのでこれらの機能も使っていきたいと思います。

77/100

参考書籍