
新Linux入門|プロセスID(PID)とは:Linuxで学ぶプロセス識別と管理の仕組み
Linuxを操作していると、「PID(プロセスID)」という言葉をよく見かけますよね。
ps や top コマンドを実行すると必ず表示されるこの数字、実はとても重要なんです。
この記事では、「プロセスID(PID)」の仕組みと役割、
さらに関連する概念(PGID、SID)までわかりやすく解説していきます💪

⚙️ プロセスID(PID)とは?
プロセスID(Process ID)は、Linuxカーネルが各プロセスを識別するために割り当てる一意の番号です。
プロセスが生成されるたびに、新しいPIDが付与され、システム上でそのプロセスを区別できるようになります。
| 項目 | 説明 |
|---|---|
| 名前 | プロセスID(PID:Process ID) |
| 型 | 整数(int型) |
| 割り当て | カーネルが新しいプロセスを生成したときに自動的に付与される。 |
| 役割 | 各プロセスを一意に識別・制御・監視するための番号 |
| 例 | 1(systemd), 2178(bash), 2234(sleep)など |
💬ポイント
PIDはシステム全体で重複しないように管理されており、
プロセスが終了すると、そのPIDは再利用されることがあります。
🧠 PIDの役割
PIDは単なる番号ではなく、Linuxのプロセス管理における中核的な識別子です。
PIDがなければ、どのプロセスを監視・停止・再開するのか区別がつきません。
| 用途 | 説明 |
|---|---|
| プロセスの識別 | OSが各プロセスを区別して管理するために使用 |
| 制御 | killコマンドなどで特定のプロセスにシグナルを送る際に指定 |
| 監視 | ps, top などで動作状態を確認 |
| 通信 | プロセス間通信(IPC)で相手を特定する手段の一つ |
💡ポイント
つまり、PIDは「住所」のようなもので、プロセスを正確に指し示すために欠かせません。
⚙️ PIDの特徴
PIDにはいくつかの性質があります👇
| 特性 | 説明 |
|---|---|
| 一意性 | 同時に存在するプロセスは異なるPIDを持つ |
| 再利用 | 終了したプロセスのPIDは、一定期間後に再利用される場合がある |
| 割り当て順序 | 通常は1から順に採番されるが、上限に達すると再利用される |
| systemdのPID | 起動直後に生成される最初のプロセス(PID=1)で、全プロセスの親となる |
💬ポイント
つまり、PID=1 の systemd は “Linuxの親分” のような存在です。
すべてのプロセスは最終的に systemd を親に持っています。
🔍 プロセスIDの確認(ps / top コマンド)
PIDを確認する最も基本的な方法は ps コマンドです。
コマンド書式
ps [オプション]主なオプション
| オプション | 説明 |
|---|---|
| -e | すべてのプロセスを表示 |
| -f | 詳細情報を表示(親子関係や実行コマンドなど) |
| -u ユーザー名 | 指定したユーザーのプロセスだけを表示 |
使用例
[root@AlmaLinux ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 11月28 ? 00:00:00 /usr/lib/systemd/systemd --switched-root --system --
root 2 0 0 11月28 ? 00:00:00 [kthreadd]
root 3 2 0 11月28 ? 00:00:00 [pool_workqueue_]
root 4 2 0 11月28 ? 00:00:00 [kworker/R-rcu_g]
root 5 2 0 11月28 ? 00:00:00 [kworker/R-sync_]
(省略)💬ポイント
- PID:プロセスのID
- PPID:親プロセスのID
- CMD:実行中のコマンド名
この例では、bash のPIDは 2182、その子プロセスである sleep は 2234 です。
📊 topコマンドでリアルタイム監視
top コマンドでは、システム上のプロセスとPIDをリアルタイムで確認できます。
[suzuki@AlmaLinux ~]$ top
top - 02:01:41 up 2:14, 2 users, load average: 0.00, 0.00, 0.00
Tasks: 220 total, 1 running, 218 sleeping, 0 stopped, 1 zombie
%Cpu(s): 0.7 us, 1.4 sy, 0.0 ni, 96.8 id, 0.0 wa, 1.2 hi, 0.0 si, 0.0 st
MiB Mem : 1707.2 total, 192.5 free, 983.0 used, 714.1 buff/cache
MiB Swap: 2048.0 total, 2045.0 free, 3.0 used. 724.2 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4982 suzuki 20 0 4090884 316764 142160 S 6.3 18.1 0:09.14 gnome-shell
6373 suzuki 20 0 853572 62384 48252 S 1.3 3.6 0:01.32 gnome-terminal
(省略)
(ここで Ctrl + Z を押す)
[1]+ Stopped top| 列名 | 意味 |
|---|---|
| PID | プロセスID |
| USER | 実行ユーザー |
| PR | 優先度(Priority) |
| NI | nice値(CPU優先度の調整) |
| TIME+ | 実行時間合計 |
| COMMAND | 実行中のコマンド |
💬ポイント
top は ps よりも動的に変化を観察できる便利ツールです。
🧩 関連する識別子:PGIDとSID
Linuxのプロセスは、PIDだけでなく「プロセスグループ」や「セッション」にも属しています。
これにより、複数のプロセスをまとめて管理できます。
| 識別子 | 名称 | 役割 |
|---|---|---|
| PID | Process ID | 各プロセスを一意に識別する |
| PPID | Parent Process ID | 親プロセスの識別子 |
| PGID | Process Group ID | 同じグループに属するプロセスをまとめて制御する |
| SID | Session ID | セッション全体をまとめる識別子。ログインセッション単位で管理される |
確認コマンド例
[suzuki@AlmaLinux ~]$ ps -o pid,ppid,pgid,sid,cmd | head出力例
PID PPID PGID SID CMD
1 0 1 1 /usr/lib/systemd/systemd
2170 2160 2170 2170 -bash
2234 2170 2234 2170 sleep 100
(省略)💬ポイント
この出力から、bash がセッションリーダー(SID=2170)で、
その子プロセス sleep は同じセッション(2170)に属していることがわかります。
🧰 PIDを使ったプロセス制御(killコマンド)
PIDを使ってプロセスを停止・終了するには、kill コマンドを使用します。
コマンド書式
kill [オプション] PID主なオプション
| オプション | 説明 |
|---|---|
| -l | 使用可能なシグナル一覧を表示 |
| -9 | 強制終了(SIGKILL) |
| -15 | 通常終了(SIGTERM、デフォルト) |
使用例
[suzuki@AlmaLinux ~]$ kill -9 2234💬ポイント
PID 2234 のプロセス(sleep 100)を強制的に終了します。
システムを安全に保つためには、kill -15(通常終了)を優先的に使いましょう。
🌈 まとめ
- PID(プロセスID) は、すべてのプロセスを識別・管理するための番号。
- PPID・PGID・SID などと連携して、階層的にプロセスを管理できる。
- ps や top でPIDを確認し、kill コマンドで制御が可能。
- PIDを理解すれば、プロセスの監視・制御・トラブル対応がスムーズになる✨
Linuxのプロセス管理は、システム運用の基本中の基本。
PIDの仕組みをしっかり理解しておくことで、トラブル時にも落ち着いて対応できます😊
