Linuxプロセス管理の基本:ps / top / kill で「安全に」状況を判断する

プロセス管理基礎 - システムプロセスの基本

Linuxを触っていると、次のような場面に必ず出会います。

  • コマンドが返ってこない
  • CPU使用率が急に上がった
  • どのプロセスが動いているのか分からない

この記事では、プロセス管理の基本操作を「暗記」ではなく「判断できる」状態になることを目標にします。

目次

  1. 先に結論:プロセス管理の判断の型
  2. プロセスとは何か(最低限)
  3. ps:まず全体を把握する
  4. top:いま重い原因をリアルタイムで見る
  5. よくある詰まり①:CPU100%=即kill してしまう
  6. kill:安全な止め方を理解する
  7. よくある詰まり②:別のプロセスを止めてしまう
  8. プロセスが増え続けるときの考え方
  9. 実践例:安全に確認して止める手順

先に結論:プロセス管理の判断の型

プロセスで困ったら、次の順で確認

  1. いま何が動いているかを見る
  2. 負荷や状態を確認する
  3. 必要な場合のみ、穏やかに止める

いきなり 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の取り違えを防げる
  • 一時的な負荷を誤って止めにくい

プロセス管理は「急がない」ことが安全につながります。

🚀 次に読む

📋 実践編で学ぶ内容

  • ジョブコントロール - バックグラウンド・フォアグラウンド操作
  • pkill / killall - プロセス名で安全に止める
  • nice/renice - 止めずに落ち着かせる選択肢
  • エラー対処 - Operation not permitted への対応
実践編に進む →

📊 プロセス管理シリーズ全体

  1. 基礎編(この記事) - ps・top・killの判断の型
  2. 実践編 - ジョブコントロール、pkill、nice

📋 検証環境

本記事のコマンドは Ubuntu 24.04 LTS / bash 5.2 で動作確認済みです。