Linuxプロセス管理の基本:ps / top / kill で「安全に」状況を判断する
Linuxを触っていると、次のような場面に必ず出会います。
- コマンドが返ってこない
- CPU使用率が急に上がった
- どのプロセスが動いているのか分からない
この記事では、プロセス管理の基本操作を「暗記」ではなく「判断できる」状態になることを目標にします。
目次
先に結論:プロセス管理の判断の型
プロセスで困ったら、次の順で確認
- いま何が動いているかを見る
- 負荷や状態を確認する
- 必要な場合のみ、穏やかに止める
いきなり kill しないことが、事故を防ぐ一番のポイントです。
プロセスとは何か(最低限)
プロセスとは、実行中のプログラムそのものです。
同じコマンドでも、実行されるたびに別のプロセスとして扱われます。
覚えておくべきポイント
- 各プロセスには PID(プロセスID) が割り当てられる
- PIDは実行のたびに変わる
この「PIDが変わる」という性質を理解していないと、誤った操作につながります。
ps:まず全体を把握する
基本形
$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 169084 1208 ? Ss 10:00 0:01 /sbin/init user 2345 80.2 5.1 512000 42000 ? R 10:15 2:34 python app.py
見るポイント
- PID:操作対象になる番号
- %CPU / %MEM:負荷の目安
- COMMAND:何が動いているか
top:いま重い原因をリアルタイムで見る
実行
$ top
よく見る項目
- 上部の load average
- プロセス一覧の %CPU
判断例
- load average が高い → CPUが混雑している
- 特定プロセスの %CPU が高い → 原因候補
※ top は q キーで終了できます。
よくある詰まり①:CPU100%=即 kill してしまう
⚠️ よくある誤解
❌ 悪い例
$ kill -9 2345
この操作は、
- 後処理が走らない
- データ破損や不整合を起こす
可能性があります。
CPUが高い理由が一時的な処理であることも多いため、まずは様子を見る判断が重要です。
kill:安全な止め方を理解する
基本(穏やかに止める)
$ kill 2345
これは SIGTERM を送ります。
プロセスに「終了してください」と依頼するイメージです。
強制終了(最終手段)
$ kill -9 2345
- どうしても止まらない場合のみ使用
- 常用しない
よくある詰まり②:別のプロセスを止めてしまう
⚠️ 注意が必要なパターン
$ ps aux | grep python $ kill 1234
- grep 自身が表示されている
- PIDを見間違える
✅ 対策
- COMMAND を必ず確認
- PIDだけで判断しない
プロセスが増え続けるときの考え方
確認すべきポイント
- 自動起動している?
- 定期実行(cronなど)ではない?
- 親プロセスは何か?
いきなり止めるのではなく、なぜ増えているかを考えることで再発を防げます。
実践例:安全に確認して止める手順
推奨手順
$ ps aux # 1. 全体把握 $ top # 2. 負荷確認 $ kill 2345 # 3. 穏やかに終了
この順番を守るだけで防げること
- 誤操作
- 不要な強制終了
なぜこの手順が安全なのか
- 状況把握 → 判断 → 操作、の順になる
- PIDの取り違えを防げる
- 一時的な負荷を誤って止めにくい
プロセス管理は「急がない」ことが安全につながります。
📊 プロセス管理シリーズ全体
- 基礎編(この記事) - ps・top・killの判断の型
- 実践編 - ジョブコントロール、pkill、nice
📋 検証環境
本記事のコマンドは Ubuntu 24.04 LTS / bash 5.2 で動作確認済みです。