
LinuxC入門|Linuxにおけるプロセス管理の基本
Linux を使っていると、表では 1 つの操作しかしていないように見えても、実は裏側ではたくさんの処理が同時に動いています。
こうした「動いているプログラム」を、Linux では プロセス と呼び、OS がきちんと管理しています。
このページでは、「Linux におけるプロセス管理の基本」として、
- プロセスとは何か
- プロセスはいつ起動し、いつ終了するのか
- 今どんなプロセスが動いているのかをどうやって確認するのか
といったポイントを、順を追ってやさしく解説していきます。
コマンド操作にまだ慣れていない方でも、イメージしやすいように表や具体例をたっぷり使って説明していきますね。

まずは、「プロセスって何?」というところから見ていきましょう。
ディスク上に保存されているプログラムは、ただ置いてあるだけでは動きません。
コマンドを実行したり、GUI アプリを起動したりすると、そのプログラムは メモリ上に読み込まれ、CPU によって処理されます。
この メモリ上で実行されている状態のプログラム を、Linux ではプロセスと呼びます。
そして処理が終わると、プロセスは自動的にメモリから消えます。
これを プロセスの終了 と言います。
一方で、前の節で登場したサービスのように、「停止せよ」と命令されるまで ずっとメモリ上に常駐し続けるプロセス もあります。
この違いを意識できるようになると、Linux の動きがぐっと分かりやすくなります。
プロセスには種類があり、それぞれ起動や終了のタイミングが異なります。
代表的なものを整理すると、次のようになります。
プロセスの種類と起動・終了のタイミング
| プロセスの種類 | 起動するタイミング | 終了するタイミング |
|---|---|---|
| CUI 上で実行するコマンド | コマンドを実行したとき | 結果を出力したら終了 |
| GUI ツール | メニューやアイコンを選択 | 閉じる操作をしたとき |
| サービス | システム起動時や手動起動 | 停止操作を行ったとき |
たとえば ls や cp のようなコマンドは、実行するとすぐに起動し、処理が終わればすぐに終了します。
一方で、SSH サーバのようなサービスは、停止するまでずっと動き続けます。
AlmaLinux の GUI 環境では、ターミナル自体も 1 つのプロセスとして動いています。
GNOME 環境の場合、ターミナルは gnome-terminal-server というプロセスで、その上で bash プロセス(シェル)が起動し、さらにその中で各種コマンドが実行されます。
このような プロセスの親子関係 を確認するために、まずは ps コマンドを見てみましょう。
ps コマンドとは
ps は、現在動作しているプロセスを一覧表示するコマンドです。
コマンド書式
ps [オプション]実行例(プロセスの親子関係を表示)
[suzuki@AlmaLinux ~]$ ps axf
PID TTY STAT TIME COMMAND
2 ? S 0:00 [kthreadd]
3 ? S 0:00 \_ [pool_workqueue_]
4 ? I< 0:00 \_ [kworker/R-rcu_g]
5 ? I< 0:00 \_ [kworker/R-sync_]
6 ? I< 0:00 \_ [kworker/R-slub_]
7 ? I< 0:00 \_ [kworker/R-netns]
9 ? I< 0:00 \_ [kworker/0:0H-events_highpri]
10 ? I 0:00 \_ [kworker/u8:0-events_unbound]
(省略)このコマンドを実行すると、どのプロセスから、どのプロセスが生まれたのか」を確認するのにとても便利です。
次に、特定の名前を持つプロセスを探す方法を見てみましょう。
pgrep コマンドとは
pgrep は、動作中のプロセスの中から、指定した名前を持つプロセスを検索して表示するコマンドです。
コマンド書式
pgrep [オプション] キーワード主なオプション
| オプション | 説明 |
|---|---|
| -l | PID と一緒にプロセス名も表示 |
| -u ユーザー | 指定したユーザーで動作しているプロセスを表示 |
実行例(sshd プロセスを検索)
[suzuki@AlmaLinux ~]$ pgrep -l sshd
1119 sshdこの例では、sshd という名前のプロセスが PID 1119 で動いていることが分かります。
「このサービス、今ちゃんと動いているかな?」という確認にもよく使われます。
システム全体の状態と、動いているプロセスを リアルタイム に確認したいときには、top コマンドがとても便利です。
top コマンドとは
top は、現在動作しているプロセスや、CPU・メモリなどのシステムリソースの状態をリアルタイムに表示するコマンドです。
コマンド書式
top [オプション]主なキー操作
| キー | 説明 |
|---|---|
| q | top を終了 |
| k | プロセスを停止 |
| d | 表示の更新間隔を変更 |
実行例
[suzuki@AlmaLinux ~]$ top
top - 17:29:49 up 1:50, 2 users, load average: 0.00, 0.00, 0.00
Tasks: 212 total, 1 running, 211 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 0.7 sy, 0.0 ni, 97.8 id, 0.0 wa, 1.2 hi, 0.0 si, 0.0 st
MiB Mem : 1707.2 total, 402.3 free, 904.8 used, 576.7 buff/cache
MiB Swap: 2048.0 total, 1909.6 free, 138.4 used. 802.4 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2184 suzuki 20 0 4078688 196244 52952 S 5.0 11.2 0:17.76 gnome-s+
2820 suzuki 20 0 917324 44820 31136 S 1.0 2.6 0:02.68 gnome-t+
56 root 20 0 0 0 0 I 0.3 0.0 0:00.30 kworker+
(省略)top を実行すると、既定では 3 秒ごとに表示が更新されます。
CPU を多く使っているプロセスが上に表示されるため、「今、どのプロセスが重たいのか」をすぐに把握できます。
表示内容を確認したら、q キーを押して終了します。
top に表示される情報の一部は、個別のコマンドでも確認できます。
uptime コマンド
uptime は、システムがどれくらいの時間稼働しているかや、現在の負荷状況を表示します。
[suzuki@AlmaLinux ~]$ uptime
17:30:28 up 1:51, 2 users, load average: 0.00, 0.00, 0.00free コマンド
free は、メモリの使用状況を一覧で表示するコマンドです。
[suzuki@AlmaLinux ~]$ free
total used free shared buff/cache available
Mem: 1748132 926744 411656 4224 590476 821388
Swap: 2097148 141696 1955452メモリ全体の容量、使用量、空き容量、スワップの状態などをまとめて確認できます。
ここまで見てきたように、Linux では すべての処理がプロセスとして管理 されています。
プロセスの起動と終了、そして現在の状態を把握できるようになると、トラブル対応やパフォーマンス確認がとても楽になります。
「今、何が動いているのか」を意識できるようになることが、Linux 管理の第一歩です。
プロセス管理の基本を押さえておくと、この先に学ぶジョブ管理やサービス管理も、自然と理解しやすくなります。
まずは「プロセスってこういうものなんだな」と、全体のイメージをつかんでいきましょう。
