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-shell

topコマンド

現在実行中のプロセスをリアルタイムに表示するためのコマンド。 デフォルトCPU使用量降順で表示される「q」で終了可能。

top

pstreeコマンド

プロセスの親子関係(親プロセス、子プロセス)を確認するコマンド。

pstree

6.3.2. プロセスの終了

killコマンド

killコマンドはプロセスにシグナルを送るコマンド。

kill <シグナルID> <プロセスID>
シグナルIDシグナル名動作
1HUPハングアップ
2INT割り込み(Ctrl + C)
9KILL強制終了
15TERM終了(デフォルト)
18CONT停止しているプロセスを再開
19STOP一時停止

pgrepコマンド

PID調べるコマンド。

pgrep <プロセス名>

killallコマンド

プロセス名指定してkillするコマンド。

killall <プロセス名>

pkillコマンド

プロセス名指定して-u, -gでプロセスの実行ユーザー・実行グループ指定しながらkillするコマンド。

pkill -u $(whoami) -SIGKILL bash

6.3.3. ジョブ管理

ジョブとは

ジョブはユーザーがコマンドやプログラムをシェル上で実行するひとまとまりの処理単位のこと。 パイプでつないだものは全体で1ジョブとなる。

フォアグラウンドジョブとバックグラウンドジョブ

ジョブにはフォアグラウンドジョブとバックグラウンドジョブの2種類がある。 通常はフォワグラウンドジョブで実行される。

ジョブ説明
フォアグラウンドジョブジョブの実行中は、シェルは停止する。
バックグラウンドジョブジョブとシェルが同時に動作して、シェルは停止しない。

コマンドラインの最後に & を追加することで、コマンドはバックグラウンドジョブで実行できる

ls -la &

jobsコマンド

実行中のジョブを確認できるコマンド。

jobs

nohupコマンド

ログアウト後も処理続行させるためのコマンド。

sudo nohup updatedb &

bgコマンド

停止中のジョブをバックグラウンドで動かすコマンド。

bg <ジョブ番号>

fgコマンド

バックグラウンドで動いているジョブをフォアグラウンドで動かすコマンド。

fg <ジョブ番号>

6.3.4. システム状況の確認

freeコマンド

システムの物理メモリとスワップメモリの使用量、空き容量を表示するコマンド。

free <オプション>
短いオプション意味
-bメモリの量をバイト単位で表示する
-kメモリの量をKB単位で表示する(デフォルト) ※
-mメモリの量をMB単位で表示する
-gメモリの量をGB単位で表示する
メモリの量をTB単位で表示する
-h読みやすい単位で表示する
単位を換算する際に1024ではなく1000で割って計算する
-lLowメモリとHighメモリの状況も表示する ※※
-t物理メモリとスワップメモリの合計を示す行も表示する
-s 間隔再出力の間隔を「ss.tt秒」で指定する(デフォルトは1回出力して終了する)
-c 回数再出力する回数を指定する(デフォルトは1回出力して終了する)

uptimeコマンド

システムの稼働時間、システムの平均負荷状況はuptimeコマンドにより確認できるコマンド。

uptime

以下情報が確認可能。

  • システム稼働時間
  • 現在ログイン中のユーザ数
  • システムの平均負荷状況

unameコマンド

システムやカーネルの情報を表示するコマンド。

uname <オプション>
オプション説明
-a, –all全ての情報を表示
-nネットワークノードとしてのホスト名を表示
-rカーネルのリリース番号を表示
-sカーネル名を表示(標準)
-vカーネルのバージョンを表示
-mマシンのハードウェア名を表示
-pプロセッサの種類を表示
-iハードウェアプラットフォームを表示
-oOS名を表示

watchコマンド

コマンドをn秒ごと(デフォルトでは2秒間隔ごと)に繰り返し実行させるコマンド。

watch <コマンド>
短いオプション意味
-tヘッダを表示しない
-eエラー時(実行したコマンドエラーコード0以外で終了したとき)はwatchコマンドも終了する
-bエラー時にはビープ音を鳴らす
-d直前の実行結果から変化した箇所をハイライト表示する。「permanent」または「cumulative」オプションを付けると初回実行時から変化した箇所を表示する(「-d=permanent」のように指定)
-cANSIによるスタイル指定を行う
-g実行結果が変化したらwatchコマンドを終了する
-n 秒数実行間隔を秒数で指定する(設定できる最小値と最小間隔は0.1秒)
-p実行のタイミングを厳密にする
-x指定したコマンドを「sh -c」ではなく「exec」コマンドで実行する