
新Linux入門|プロセスの制御とは:Linuxで学ぶ実行・停止・終了・優先度の基本
Linuxでは、すべての動作が「プロセス」という単位で管理されています。
でも、ただ動かすだけでなく、プロセスを止めたり・再開したり・終了させたりすることもできます。
この記事では、プロセスの制御の基本をわかりやすく解説していきます💪

⚙️ プロセスとは?
プロセス(Process)とは、実行中のプログラムの実体です。
たとえば、ターミナルで ls を実行すれば、その瞬間に「ls プロセス」が作られて動きます。
OS(Linuxカーネル)は、各プロセスにCPU時間・メモリ・ファイルハンドルなどを割り当てて管理します。
| 項目 | 説明 |
|---|---|
| 定義 | 実行中のプログラムの実体 |
| 識別子 | プロセスID(PID)で一意に識別される。 |
| 管理者 | Linuxカーネルが生成・実行・終了を制御 |
| 実行例 | ls, ps, vim, sshd などすべてがプロセスとして動作 |
⚙️ プロセスの生成と終了の仕組み
プロセスは 生成 → 実行 → 終了 というサイクルで動作します。
| フェーズ | 説明 |
|---|---|
| 生成(fork/exec) | 新しいプログラムが実行されるとき、親プロセスが fork() で子プロセスを作成。 |
| 実行 | 子プロセスが exec() により指定プログラムを実行。 |
| 終了 | 処理完了またはシグナル受信により終了し、リソースが解放される。 |
💬ポイント
Linuxのすべてのプロセスは、最初に起動される systemd (PID=1) を親にもつ階層構造になっています。
🧭 プロセスの制御とは?
プロセスの制御とは、実行中のプロセスに対して 一時停止・再開・終了・優先度変更 などを行う操作のことです。
これにより、システムの安定性を保ちながら、リソースを効率よく使うことができます。
| 操作 | 内容 | 主なコマンド |
|---|---|---|
| 一覧表示 | 実行中のプロセスを確認する。 | ps, top |
| 一時停止 | 一時的に処理を中断する。 | Ctrl+Z |
| 再開 | 停止したプロセスを再開する。 | bg, fg |
| 終了 | プロセスを停止・終了する。 | kill |
| 優先度変更 | CPU利用の優先度を設定 | nice, renice |
🔍 プロセスの一覧表示(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)を確認することで、どのプロセスがどの親から生まれたのか分かります。
⏸️ プロセスの停止(Ctrl + Z)
ターミナル上で動いているプロセスを一時停止するには、
Ctrl + Z を押します。
例
[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💬ポイント
これでプロセスが一時停止(Stopped)状態になります。
停止したジョブは jobs コマンドで確認できます。
▶️ プロセスの再開(bg / fg)
停止したプロセスは、次のコマンドで再開できます。
| コマンド | 説明 | 例 |
|---|---|---|
| fg %1 | ジョブ番号1をフォアグラウンドで再開 | fg %1 |
| bg %1 | ジョブ番号1をバックグラウンドで再開 | bg %1 |
💬ポイント
fg は画面上で操作を再開、bg は裏で動かしながら他の作業を続けられます。
❌ プロセスの終了(killコマンド)
プロセスを終了させたいときは、kill コマンドでシグナルを送ります。
コマンド書式
kill [オプション] PID主なオプション
| オプション | 説明 |
|---|---|
| -l | 利用可能なシグナル一覧を表示 |
| -9 | 強制終了(SIGKILL) |
| -15 | 通常終了(SIGTERM:デフォルト) |
使用例
[suzuki@AlmaLinux ~]$ kill -9 2189💬ポイント
PID 2189 のプロセスを強制終了します。
安全に終了させたい場合は kill -15 を使いましょう。
⚖️ プロセスの優先度とスケジューリング(nice / renice)
Linuxでは、プロセスごとに優先度(Priority)が設定されており、
CPU時間の割り当てを調整することができます。
優先度は nice値(-20~19) で表され、数値が小さいほど優先的に実行されます。
(通常ユーザーは +値しか設定できず、負の値はroot権限が必要です)
| コマンド | 説明 |
|---|---|
| nice | 新しいプロセスを指定した優先度で起動 |
| renice | 実行中のプロセスの優先度を変更 |
使用例
新しいプロセスを優先度 +10 で起動
[suzuki@AlmaLinux ~]$ nice -n 10 tar czf backup.tar.gz /home/suzuki実行中プロセスの優先度を変更
[root@AlmaLinux ~]# renice -n -5 2170
2170 (process ID) old priority 0, new priority -5💬ポイント
システム負荷が高いとき、低優先度で実行すべきタスクを nice で設定すると便利です。
🌈 まとめ
- プロセスの制御とは、実行・停止・再開・終了・優先度変更などを通して、
システムの安定と効率を保つための基本操作。 - ps, kill, bg, fg, nice, renice などを使いこなすことで、
サーバーの負荷管理やトラブル対応がスムーズになります。 - 正しくプロセスを扱うことで、AlmaLinux 9.6 の運用がより安全で快適になります✨
次回は、シグナルの種類とプロセス間通信(IPC) の仕組みについて詳しく見ていきましょう!
