プロセスとジョブ
プロセス
コマンドの実体はディスク上に保存されたファイル
シェルからコマンドを実行すると Linuxカーネルはディスクから実行ファイルを読み出す
読み出した実行ファイルはメモリ上に格納される
メモリ上の内容を元にCPUがプログラムを実行する
→メモリ上で実行状態にあるプログラム=プロセス
プロセスはそれぞれ別々のメモリ領域を持つので、複数のプロセスが同時に実行されていたとしても互いに干渉しない
psコマンドで起動中のプロセスを確認できる
psコマンドのオプション
x psコマンドを実行したユーザーのプロセス
ux psコマンドを実行したユーザーのプロセスを詳細情報と一緒に表示
ax 全てのユーザーのプロセスを表示
aux 全てのユーザーのプロセスを詳細情報と一緒に表示
auxww auxコマンドでターミナルの右端の表示はばを制限せずに表示
ジョブ
プロセスはLinuxカーネルから見た処理の単位
シェルから見た処理の単位は、ジョブという
複数のシェルを立ち上げていると、ジョブ番号は重複することになる
ジョブの制御機能を上手く使いこなす=様々な作業を並行して効率よく実行できる
コマンドを一時停止して作業を続ける例
code:job
$ man bash
^z # 処理を中断
$ vi ~/.bashrc
^z # 処理を中断
$ jobs # ジョブ一覧を表示
$ jobs -l # プロセスIDも一緒に表示
2+ 4509 Stopped vi ~/.bashrc $ kill %2 # ジョブ番号でkillする
$ jobs
2+ Terminated man bash # 終了処理中 $ jobs
1+ Stopped vi ~/.bashrc # 処理が終わったらジョブが消えた