Skip to content

プロセス管理コマンド

Linuxでのプロセス管理に使用するコマンドを詳しく解説します。

Terminal window
# 現在のユーザーのプロセスを表示
ps
# すべてのプロセスを表示(-e: all processes、-f: full format)
ps -ef
# 詳細情報を表示(-aux: BSD形式)
ps aux
# 特定のプロセスを検索
ps aux | grep nginx
# ツリー形式で表示(-H: hierarchy)
ps -efH
Terminal window
# ps auxの出力例
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 16832 1084 ? Ss Jan01 0:01 /sbin/init
root 123 0.0 0.2 12345 2345 ? S Jan01 0:05 nginx
# 各カラムの意味:
# USER: プロセスの所有者
# PID: プロセスID
# %CPU: CPU使用率
# %MEM: メモリ使用率
# VSZ: 仮想メモリサイズ
# RSS: 物理メモリサイズ
# TTY: 端末
# STAT: プロセス状態
# START: 開始時刻
# TIME: CPU使用時間
# COMMAND: コマンド
R: Running(実行中)
S: Sleeping(スリープ中)
D: Disk sleep(ディスク待機)
Z: Zombie(ゾンビプロセス)
T: Stopped(停止中)
Terminal window
# プロセスをリアルタイムで監視
top
# 操作方法:
# - q: 終了
# - k: プロセスを終了(PIDを入力)
# - r: 優先度を変更
# - M: メモリ使用率でソート
# - P: CPU使用率でソート
# - 1: CPUコアごとの表示
Terminal window
# 特定のプロセスを監視
top -p 1234
# 更新間隔を変更(1秒ごと)
top -d 1
# バッチモード(1回だけ表示)
top -b -n 1
Terminal window
# htopを起動(topより使いやすい)
htop
# 操作方法:
# - F9: プロセスを終了
# - F5: ツリー表示
# - F6: ソート方法を変更
# - /: 検索
Terminal window
# プロセスを終了(デフォルトはSIGTERM)
kill 1234
# 強制終了(SIGKILL)
kill -9 1234
# または
kill -KILL 1234
# プロセス名で終了
killall nginx
# シグナルの一覧を確認
kill -l
Terminal window
# 主なシグナル:
# SIGTERM (15): 正常終了(デフォルト)
# SIGKILL (9): 強制終了(無視できない)
# SIGHUP (1): ハングアップ(設定の再読み込みなど)
# SIGINT (2): 割り込み(Ctrl+C)
Terminal window
# プロセスを正常終了
kill 1234
# 強制終了(最後の手段)
kill -9 1234
# プロセス名で終了
pkill nginx
# 条件に合うプロセスを終了
pkill -f "python app.py"
Terminal window
# バックグラウンドで実行(終了しても続行)
nohup python app.py &
# 出力をファイルにリダイレクト
nohup python app.py > output.log 2>&1 &
# プロセスIDを確認
echo $!
Terminal window
# 長時間実行されるスクリプトをバックグラウンドで実行
nohup ./long_running_script.sh > script.log 2>&1 &
# プロセスIDを記録
nohup python app.py > app.log 2>&1 &
echo $! > app.pid
Terminal window
# バックグラウンドジョブの一覧
jobs
# ジョブをフォアグラウンドに戻す
fg %1
# ジョブをバックグラウンドで実行
bg %1
# ジョブを停止(Ctrl+Z)
# その後、bgで再開
Terminal window
# 長時間実行されるコマンドをバックグラウンドで実行
python long_task.py &
jobs # ジョブの確認
# フォアグラウンドに戻す
fg %1
# バックグラウンドで再開
bg %1
Terminal window
# サービスの状態を確認
systemctl status nginx
# サービスを開始
systemctl start nginx
# サービスを停止
systemctl stop nginx
# サービスを再起動
systemctl restart nginx
# サービスをリロード(設定の再読み込み)
systemctl reload nginx
# サービスの有効化(起動時に自動開始)
systemctl enable nginx
# サービスの無効化
systemctl disable nginx
# すべてのサービス一覧
systemctl list-units --type=service
Terminal window
# Nginxの状態を確認
systemctl status nginx
# Nginxを再起動
systemctl restart nginx
# 起動時に自動開始するように設定
systemctl enable nginx

プロセス管理コマンドのポイント:

  • ps: プロセス一覧の表示、詳細情報
  • top: リアルタイムでのプロセス監視
  • htop: 対話的なプロセス監視
  • kill: プロセス終了、シグナル送信
  • nohup: バックグラウンド実行、終了後も続行
  • jobs/fg/bg: ジョブ制御
  • systemctl: systemdサービスの管理

適切にプロセス管理コマンドを使用することで、効率的にプロセスを管理できます。