メインコンテンツへスキップ
レッスン 8 / 10推定時間: 20

プロセス管理の基礎

ps、top、killコマンドを使ってプロセスの確認と管理を行う方法を学びます

このレッスンの学習目標

  • 実行中のプロセスを確認できる
  • プロセスの詳細情報を理解できる
  • プロセスを安全に終了できる
  • システムリソースの使用状況を確認できる

プロセスとは

プロセスは、実行中のプログラムのインスタンスです。各プロセスには固有のプロセスID(PID)が割り当てられ、システムリソース(CPU、メモリなど)を使用します。

プロセスの確認:ps

ps(Process Status)は、現在実行中のプロセスの一覧を表示します。

基本的な使い方

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

試してみよう:

  1. ps - 現在のターミナルのプロセス
  2. ps aux - すべてのプロセスを詳細表示
  3. ps -ef - 完全なフォーマットで表示

psの主要なオプション

オプション説明
aすべてのユーザーのプロセス
uユーザー指向のフォーマット
xターミナルに関連しないプロセスも表示
-eすべてのプロセス
-f完全なフォーマット
-l長いフォーマット

プロセス情報の見方

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1 225768  9536 ?        Ss   10:00   0:01 /sbin/init
説明
USERプロセスの所有者
PIDプロセスID
%CPUCPU使用率
%MEMメモリ使用率
STATプロセスの状態
COMMAND実行コマンド

リアルタイム監視:top

topは、システムリソースの使用状況をリアルタイムで表示します。

topの基本操作

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

top実行中の操作キー:

  • q: 終了
  • k: プロセスをkill
  • r: プロセスの優先度変更
  • M: メモリ使用量でソート
  • P: CPU使用率でソート
  • 1: CPU別表示の切り替え

topの情報の読み方

top - 15:30:02 up 10 days,  3:15,  2 users,  load average: 0.15, 0.10, 0.08
Tasks: 120 total,   1 running, 119 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.0 us,  1.0 sy,  0.0 ni, 97.0 id,  0.0 wa,  0.0 hi,  0.0 si
MiB Mem :   7982.0 total,   2048.0 free,   3500.0 used,   2434.0 buff/cache

プロセスの終了:kill

killは、プロセスにシグナルを送信します。最も一般的な用途はプロセスの終了です。

基本的なシグナル

シグナル番号説明
TERM15通常終了(デフォルト)
KILL9強制終了
HUP1ハングアップ(再読み込み)
INT2割り込み(Ctrl+C相当)
CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

プロセスの終了は慎重に:

  1. まずkill PID(TERM)で通常終了を試す
  2. 応答しない場合のみkill -9 PIDで強制終了
  3. システムプロセスは終了しない

プロセス終了の例

# プロセスIDを確認
ps aux | grep firefox

# 通常終了
kill 12345

# 強制終了(最終手段)
kill -9 12345

# プロセス名で終了
pkill firefox
killall chrome

ジョブコントロール

ターミナルで実行中のプログラムをバックグラウンド/フォアグラウンドで制御できます。

ジョブの操作

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

ジョブコントロールの基本:

  • Ctrl+Z: 実行中のプロセスを一時停止
  • jobs: ジョブ一覧を表示
  • bg %1: ジョブ1をバックグラウンドで再開
  • fg %1: ジョブ1をフォアグラウンドに
  • &: コマンドの最後に付けてバックグラウンド実行

実践例

# 長時間実行されるコマンドをバックグラウンドで
find / -name "*.log" 2>/dev/null > logfiles.txt &

# 実行中のコマンドをバックグラウンドに
sleep 100
# Ctrl+Z で一時停止
bg

# ジョブの確認
jobs

# フォアグラウンドに戻す
fg %1

プロセスの優先度

niceとrenice

プロセスの優先度(nice値)を調整できます。

# 低優先度で実行(nice値10)
nice -n 10 command

# 実行中のプロセスの優先度を変更
renice -n 5 -p PID

Nice値の範囲:

  • -20(最高優先度)から 19(最低優先度)
  • デフォルトは 0
  • 一般ユーザーは優先度を下げることのみ可能

システム情報の確認

その他の便利なコマンド

# システムの負荷平均
uptime

# メモリ使用状況
free -h

# ディスク使用状況
df -h

# 開いているファイル
lsof

# ネットワーク接続
netstat -an
ss -an

実践演習

以下の演習に挑戦してみましょう:

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

課題

  1. 現在のシェルのプロセスIDを確認
  2. CPU使用率の高いプロセスTop 5を表示
  3. sleepコマンドをバックグラウンドで実行
  4. 実行中のsleepプロセスを終了

解答例:

# 1. シェルのPIDを確認
echo $$
ps

# 2. CPU使用率Top 5
ps aux --sort=-%cpu | head -6

# 3. バックグラウンドでsleep
sleep 300 &

# 4. sleepを終了
jobs
kill %1
# または
ps aux | grep sleep
kill [PID]

トラブルシューティング

ゾンビプロセス

親プロセスが終了情報を受け取っていない子プロセス:

# ゾンビプロセスの確認
ps aux | grep defunct

プロセスが終了しない場合

# 1. 通常のkill
kill PID

# 2. 少し待つ(10秒程度)

# 3. それでも終了しない場合
kill -9 PID

# 4. それでも残る場合は親プロセスを確認
ps -ef | grep PID

セキュリティの注意点

  1. 他のユーザーのプロセスには触らない
  2. システムプロセス(PID 1など)は終了しない
  3. 本番環境では慎重に操作する
  4. killする前にプロセスの役割を確認

まとめ

このレッスンでは、プロセス管理の基本を学びました。pstopkillを使いこなすことで、システムの状態を把握し、適切に管理できるようになります。

次のレッスンでは、パーミッションと所有権について学びます。

💡 プロセス管理は慎重に!特に本番環境では、killする前に必ずプロセスの役割を確認しましょう。

さらに学習を続けるには

素晴らしい学習ペースです!次のレッスンに進むには、無料会員登録をお願いします。無料会員では各コース3レッスンまで学習できます。

無料で続きを学ぶ

各コース3レッスンまで学習可能

学習進捗の自動保存

コース修了証明書の発行