6.3. プロセスの管理
6.3.1. プロセスの監視
プロセスとは
プロセスはOSが動作中のプログラムを管理する基本単位OSが動作中のプログラムを管理する基本単位のこと。 ハードディスクからメモリ上に読み出され、実行されているプログラムがそれぞれ表される。
psコマンド
プロセス情報を確認するコマンド。 オプションは-つきとそうでないもの混在する。
ps aux #全部の実行中プロセス確認| オプション | 説明 | 
|---|---|
| a | 他のユーザーの全てのプロセスを表示 | 
| f | プロセスの親子関係を表示 | 
| u | プロセスのユーザー情報を表示 | 
| x | 端末を利用していない全てのプロセスを表示 | 
| -e | 全てのプロセスを表示 | 
| -l | プロセスの詳細情報の表示 | 
| -p PID | 指定したプロセスID(PID)の情報のみ表示 | 
| -C プロセス名 | 指定した名前のプロセスのみ表示 | 
| -w | 長い行を折り返して表示 | 
画面表示例は以下の通り。
PID  TTY      STAT   TIME COMMAND
1358 tty1     Ssl+   0:00 /usr/lib/gdm3/gdm-wayland-session gnome-session -
1362 tty1     Sl+    0:00 /usr/lib/gnome-session/gnome-session-binary --aut
1380 tty1     Sl+    0:26 /usr/bin/gnome-shelltopコマンド
現在実行中のプロセスをリアルタイムに表示するためのコマンド。 デフォルトCPU使用量降順で表示される「q」で終了可能。
toppstreeコマンド
プロセスの親子関係(親プロセス、子プロセス)を確認するコマンド。
pstree6.3.2. プロセスの終了
killコマンド
killコマンドはプロセスにシグナルを送るコマンド。
kill <シグナルID> <プロセスID>| シグナルID | シグナル名 | 動作 | 
|---|---|---|
| 1 | HUP | ハングアップ | 
| 2 | INT | 割り込み(Ctrl + C) | 
| 9 | KILL | 強制終了 | 
| 15 | TERM | 終了(デフォルト) | 
| 18 | CONT | 停止しているプロセスを再開 | 
| 19 | STOP | 一時停止 | 
pgrepコマンド
PID調べるコマンド。
pgrep <プロセス名>killallコマンド
プロセス名指定してkillするコマンド。
killall <プロセス名>pkillコマンド
プロセス名指定して-u, -gでプロセスの実行ユーザー・実行グループ指定しながらkillするコマンド。
pkill -u $(whoami) -SIGKILL bash6.3.3. ジョブ管理
ジョブとは
ジョブはユーザーがコマンドやプログラムをシェル上で実行するひとまとまりの処理単位のこと。 パイプでつないだものは全体で1ジョブとなる。
フォアグラウンドジョブとバックグラウンドジョブ
ジョブにはフォアグラウンドジョブとバックグラウンドジョブの2種類がある。 通常はフォワグラウンドジョブで実行される。
| ジョブ | 説明 | 
|---|---|
| フォアグラウンドジョブ | ジョブの実行中は、シェルは停止する。 | 
| バックグラウンドジョブ | ジョブとシェルが同時に動作して、シェルは停止しない。 | 
コマンドラインの最後に & を追加することで、コマンドはバックグラウンドジョブで実行できる。
ls -la &jobsコマンド
実行中のジョブを確認できるコマンド。
jobsnohupコマンド
ログアウト後も処理続行させるためのコマンド。
sudo nohup updatedb &bgコマンド
停止中のジョブをバックグラウンドで動かすコマンド。
bg <ジョブ番号>fgコマンド
バックグラウンドで動いているジョブをフォアグラウンドで動かすコマンド。
fg <ジョブ番号>6.3.4. システム状況の確認
freeコマンド
システムの物理メモリとスワップメモリの使用量、空き容量を表示するコマンド。
free <オプション>| 短いオプション | 意味 | 
|---|---|
| -b | メモリの量をバイト単位で表示する | 
| -k | メモリの量をKB単位で表示する(デフォルト) ※ | 
| -m | メモリの量をMB単位で表示する | 
| -g | メモリの量をGB単位で表示する | 
| メモリの量をTB単位で表示する | |
| -h | 読みやすい単位で表示する | 
| 単位を換算する際に1024ではなく1000で割って計算する | |
| -l | LowメモリとHighメモリの状況も表示する ※※ | 
| -t | 物理メモリとスワップメモリの合計を示す行も表示する | 
| -s 間隔 | 再出力の間隔を「ss.tt秒」で指定する(デフォルトは1回出力して終了する) | 
| -c 回数 | 再出力する回数を指定する(デフォルトは1回出力して終了する) | 
uptimeコマンド
システムの稼働時間、システムの平均負荷状況はuptimeコマンドにより確認できるコマンド。
uptime以下情報が確認可能。
- システム稼働時間
- 現在ログイン中のユーザ数
- システムの平均負荷状況
unameコマンド
システムやカーネルの情報を表示するコマンド。
uname <オプション>| オプション | 説明 | 
|---|---|
| -a, –all | 全ての情報を表示 | 
| -n | ネットワークノードとしてのホスト名を表示 | 
| -r | カーネルのリリース番号を表示 | 
| -s | カーネル名を表示(標準) | 
| -v | カーネルのバージョンを表示 | 
| -m | マシンのハードウェア名を表示 | 
| -p | プロセッサの種類を表示 | 
| -i | ハードウェアプラットフォームを表示 | 
| -o | OS名を表示 | 
watchコマンド
コマンドをn秒ごと(デフォルトでは2秒間隔ごと)に繰り返し実行させるコマンド。
watch <コマンド>| 短いオプション | 意味 | 
|---|---|
| -t | ヘッダを表示しない | 
| -e | エラー時(実行したコマンドエラーコード0以外で終了したとき)はwatchコマンドも終了する | 
| -b | エラー時にはビープ音を鳴らす | 
| -d | 直前の実行結果から変化した箇所をハイライト表示する。「permanent」または「cumulative」オプションを付けると初回実行時から変化した箇所を表示する(「-d=permanent」のように指定) | 
| -c | ANSIによるスタイル指定を行う | 
| -g | 実行結果が変化したらwatchコマンドを終了する | 
| -n 秒数 | 実行間隔を秒数で指定する(設定できる最小値と最小間隔は0.1秒) | 
| -p | 実行のタイミングを厳密にする | 
| -x | 指定したコマンドを「sh -c」ではなく「exec」コマンドで実行する |