新Linux入門|プロセス操作

Linuxでは、実行中のすべてのプログラムは「プロセス」として管理されています。
 アプリケーション、サービス、バックグラウンドタスク、そしてあなたが入力したコマンド一つひとつもすべてプロセスです。

システムの安定運用やトラブル対応を行うためには、
 「どんなプロセスが動いているのか」「CPUやメモリをどれくらい使っているのか」「不要なプロセスを止める」
といった操作が欠かせません。

ここでは、プロセスの確認・監視・終了・優先度変更など、
日常的によく使われるプロセス操作のコマンドを紹介します。

⚙️ プロセスとは

プロセスとは、「実行中のプログラムの実体」のことです。
それぞれのプロセスは、OSから一意の番号(PID:プロセスID)を割り当てられています。
このPIDを基準に、システムはプロセスを監視したり制御したりします。

たとえば、次のように ps コマンドを使うと、現在実行中のプロセスを確認できます。

[suzuki@AlmaLinux ~]$ ps
    PID TTY          TIME CMD
   2450 pts/0    00:00:00 bash
   2462 pts/0    00:00:00 ps

🧰 プロセス操作の代表的なコマンド一覧

コマンド主なオプション説明
ps-e, -f, -aux実行中のプロセス情報を表示する。
top-p [PID]プロセスのリアルタイムな状態を表示する。
kill-9, -SIGTERM, -SIGKILL, -l指定したプロセスを終了させる。
pkill-f, -u [ユーザー名]名前やユーザーに基づいてプロセスを終了させる。
pgrep-u [ユーザー名]プロセス名やユーザーからPIDを検索する。
renice-n [優先度]実行中のプロセスの優先度を変更する。

これらを組み合わせることで、Linuxの「動いている中身」を自在に管理できます。

🧩 psコマンド(プロセス情報の表示)

現在実行中のプロセスを確認する基本コマンドです。
システム全体の状況を把握する第一歩になります。

コマンド書式

ps [オプション]

主なオプション

オプション説明
-eシステム全体のすべてのプロセスを表示
-fフルフォーマットで表示(親子関係やコマンド名など)
-auxすべてのユーザーのプロセスを詳細表示(BSD形式)

使用例

[suzuki@AlmaLinux ~]$ ps -ef | head -5
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 08:00 ?        00:00:03 systemd
root         2     0  0 08:00 ?        00:00:00 kthreadd
root         3     2  0 08:00 ?        00:00:00 rcu_gp
suzuki    2850  2440  0 10:12 pts/0    00:00:00 bash

💡 UID はユーザー名、PPID は親プロセスのIDです。

📊 topコマンド(プロセスのリアルタイム監視)

top は、CPUやメモリの使用状況をリアルタイムに表示するコマンドです。
システム負荷の把握に最適です。

コマンド書式

top [-p PID]

主な操作キー(実行中に入力できる)

キー機能
q終了
kプロセスの終了(kill)
rプロセス優先度(nice値)の変更
PCPU使用率順に並び替え
Mメモリ使用量順に並び替え

使用例

[suzuki@AlmaLinux ~]$ top
top - 10:35:40 up 2:21,  2 users,  load average: 0.03, 0.06, 0.00
Tasks: 125 total,   1 running, 124 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1.0 us,  0.2 sy,  0.0 ni, 98.7 id,  0.0 wa,  0.0 hi,  0.1 si
MiB Mem :   3948.6 total,   1024.8 free,   865.4 used,  2058.4 buff/cache
PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
2850 suzuki   20   0   11840   3544   3124 S   0.3   0.1   0:00.05 bash
2891 suzuki   20   0   14120   2328   1984 R   0.3   0.0   0:00.03 top

💬 top は動的に更新されるため、負荷変化をリアルタイムで確認できます。

🔫 killコマンド(プロセスの終了)

特定のプロセスを終了させたいときに使います。
PIDを指定して、シグナルを送信することで終了させます。

コマンド書式

kill [オプション] PID

主なオプション

オプション説明
-9強制終了(SIGKILL)
-SIGTERM通常の終了要求(デフォルト)
-SIGKILL強制終了要求
-l使用可能なシグナル一覧を表示

使用例

[suzuki@AlmaLinux ~]$ ps -ef | grep sleep
suzuki   2950  2850  0 10:42 pts/0  00:00:00 sleep 100
[suzuki@AlmaLinux ~]$ kill -9 2950

💡 注意: 強制終了(-9)は、データ破損の危険があるため最後の手段として使いましょう。

🔍 pgrepコマンド(PIDの検索)

プロセス名やユーザー名を基に、対応するPIDを検索します。

コマンド書式

pgrep [オプション] プロセス名

主なオプション

オプション説明
-u [ユーザー名]指定ユーザーのプロセスを検索

使用例

[suzuki@AlmaLinux ~]$ pgrep bash
2850

💬 スクリプトなどで自動的にPIDを取得したいときにも便利です。

💥 pkillコマンド(名前でプロセスを終了)

kill がPIDを指定するのに対し、pkill は名前やユーザー名でまとめて終了できます。

コマンド書式

pkill [オプション] プロセス名

主なオプション

オプション説明
-f正規表現でプロセスを指定
-u [ユーザー名]指定ユーザーのプロセスを終了

使用例

[root@AlmaLinux ~]# pkill -u suzuki firefox

💡 特定ユーザーのプロセスを一括停止したい場合に便利です。

⚖️ reniceコマンド(優先度の変更)

実行中のプロセスの「nice値」を変更し、CPUの使用優先度を調整します。

値が低いほど優先度が高く、値が高いほど優先度が低くなります。

コマンド書式

renice [オプション] PID

主なオプション

オプション説明
-n [優先度]新しいnice値を指定する。

使用例

[root@AlmaLinux ~]# renice -n 10 2850
2850 (process ID) old priority 0, new priority 10

💬 CPU負荷を軽減したいプロセスに対して有効です。

💬 まとめ

プロセス操作は、システムの安定稼働に欠かせない重要スキルです⚙️

💡 覚えておきたいポイント

  • ps でプロセスを確認しよう
  • top でリアルタイム監視
  • kill / pkill / pgrep でプロセス制御
  • renice で優先度を調整

これらをマスターすれば、Linux でのプロセス管理は万全です!
トラブル対応時や負荷調整時にも役立つ、頼れる管理テクニックです😊