プロセス管理コマンド
プロセス管理コマンド
Section titled “プロセス管理コマンド”Linuxでのプロセス管理に使用するコマンドを詳しく解説します。
ps(プロセス一覧)
Section titled “ps(プロセス一覧)”基本的な使い方
Section titled “基本的な使い方”# 現在のユーザーのプロセスを表示ps
# すべてのプロセスを表示(-e: all processes、-f: full format)ps -ef
# 詳細情報を表示(-aux: BSD形式)ps aux
# 特定のプロセスを検索ps aux | grep nginx
# ツリー形式で表示(-H: hierarchy)ps -efH# ps auxの出力例USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.1 16832 1084 ? Ss Jan01 0:01 /sbin/initroot 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: コマンドプロセス状態(STAT)
Section titled “プロセス状態(STAT)”R: Running(実行中)S: Sleeping(スリープ中)D: Disk sleep(ディスク待機)Z: Zombie(ゾンビプロセス)T: Stopped(停止中)top(プロセス監視)
Section titled “top(プロセス監視)”基本的な使い方
Section titled “基本的な使い方”# プロセスをリアルタイムで監視top
# 操作方法:# - q: 終了# - k: プロセスを終了(PIDを入力)# - r: 優先度を変更# - M: メモリ使用率でソート# - P: CPU使用率でソート# - 1: CPUコアごとの表示# 特定のプロセスを監視top -p 1234
# 更新間隔を変更(1秒ごと)top -d 1
# バッチモード(1回だけ表示)top -b -n 1htop(対話的なプロセス監視)
Section titled “htop(対話的なプロセス監視)”基本的な使い方
Section titled “基本的な使い方”# htopを起動(topより使いやすい)htop
# 操作方法:# - F9: プロセスを終了# - F5: ツリー表示# - F6: ソート方法を変更# - /: 検索kill(プロセス終了)
Section titled “kill(プロセス終了)”基本的な使い方
Section titled “基本的な使い方”# プロセスを終了(デフォルトはSIGTERM)kill 1234
# 強制終了(SIGKILL)kill -9 1234# またはkill -KILL 1234
# プロセス名で終了killall nginx
# シグナルの一覧を確認kill -lシグナルの種類
Section titled “シグナルの種類”# 主なシグナル:# SIGTERM (15): 正常終了(デフォルト)# SIGKILL (9): 強制終了(無視できない)# SIGHUP (1): ハングアップ(設定の再読み込みなど)# SIGINT (2): 割り込み(Ctrl+C)# プロセスを正常終了kill 1234
# 強制終了(最後の手段)kill -9 1234
# プロセス名で終了pkill nginx
# 条件に合うプロセスを終了pkill -f "python app.py"nohup(バックグラウンド実行)
Section titled “nohup(バックグラウンド実行)”基本的な使い方
Section titled “基本的な使い方”# バックグラウンドで実行(終了しても続行)nohup python app.py &
# 出力をファイルにリダイレクトnohup python app.py > output.log 2>&1 &
# プロセスIDを確認echo $!# 長時間実行されるスクリプトをバックグラウンドで実行nohup ./long_running_script.sh > script.log 2>&1 &
# プロセスIDを記録nohup python app.py > app.log 2>&1 &echo $! > app.pidjobs / fg / bg(ジョブ制御)
Section titled “jobs / fg / bg(ジョブ制御)”基本的な使い方
Section titled “基本的な使い方”# バックグラウンドジョブの一覧jobs
# ジョブをフォアグラウンドに戻すfg %1
# ジョブをバックグラウンドで実行bg %1
# ジョブを停止(Ctrl+Z)# その後、bgで再開# 長時間実行されるコマンドをバックグラウンドで実行python long_task.py &jobs # ジョブの確認
# フォアグラウンドに戻すfg %1
# バックグラウンドで再開bg %1systemctl(systemdサービス管理)
Section titled “systemctl(systemdサービス管理)”基本的な使い方
Section titled “基本的な使い方”# サービスの状態を確認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# Nginxの状態を確認systemctl status nginx
# Nginxを再起動systemctl restart nginx
# 起動時に自動開始するように設定systemctl enable nginxプロセス管理コマンドのポイント:
- ps: プロセス一覧の表示、詳細情報
- top: リアルタイムでのプロセス監視
- htop: 対話的なプロセス監視
- kill: プロセス終了、シグナル送信
- nohup: バックグラウンド実行、終了後も続行
- jobs/fg/bg: ジョブ制御
- systemctl: systemdサービスの管理
適切にプロセス管理コマンドを使用することで、効率的にプロセスを管理できます。