プロセスの表示、監視、制御などを行うコマンドです。
実行中のプロセスを表示します。
オプション | 説明 |
---|---|
-e, -A | すべてのプロセスを表示 |
-f | 完全なフォーマットで表示(親プロセスIDなどの追加情報) |
-l | 長いフォーマットで表示 |
-u [user] | 指定したユーザーのプロセスを表示 |
-p [pid] | 指定したプロセスIDのプロセスを表示 |
--sort=[column] | 指定した列でソート(例: --sort=-%cpu) |
-o [format] | 出力フォーマットをカスタマイズ |
例:
ps
- 現在のターミナルのプロセスを表示ps -ef
- すべてのプロセスを完全なフォーマットで表示ps aux
- すべてのプロセスをユーザー指向フォーマットで表示ps -u root
- rootユーザーのプロセスを表示ps --sort=-%cpu
- CPU使用率の高い順にソートps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
- メモリ使用率の高い上位プロセスを表示ps -C nginx
- 特定の名前のプロセス(この場合はnginx)を表示ps -p 1234 -o pid,ppid,cmd,lstart
- 特定のプロセスIDの詳細情報と開始時間を表示ps -U root -u root u
- rootが所有するプロセスを詳細フォーマットで表示ps aux --forest
- プロセスをツリー構造で表示(親子関係が分かりやすい)
システムのプロセスをリアルタイムで監視します。
オプション/キー | 説明 |
---|---|
-d [seconds] | 更新間隔を指定(秒) |
-n [iterations] | 指定した回数だけ更新して終了 |
-p [pid] | 指定したプロセスIDのみを監視 |
-u [user] | 指定したユーザーのプロセスのみを表示 |
k | プロセスを終了(実行中にkキーを押す) |
r | プロセスの優先度を変更(実行中にrキーを押す) |
f | 表示する列を選択(実行中にfキーを押す) |
q | topを終了(実行中にqキーを押す) |
例:
top
- プロセスをリアルタイムで監視top -d 5
- 5秒間隔で更新top -n 10
- 10回更新して終了top -u username
- 特定ユーザーのプロセスのみを表示top -b -n 1 > top_output.txt
- バッチモードで1回だけ実行し、結果をファイルに保存top -b -n 1 | grep "firefox"
- 特定のプロセス(この場合はfirefox)の情報のみを抽出top -c
- コマンドラインの完全なパスを表示top -o %MEM
- メモリ使用率でソートtop -i
- アイドル状態のプロセスを非表示
topの拡張版で、より使いやすいインターフェースを提供します。
キー | 説明 |
---|---|
F1-F10 | 各種機能へのショートカット |
Space | プロセスをマーク/マーク解除 |
F9 | マークしたプロセスを終了 |
F6 | ソート列を選択 |
F5 | ツリー表示に切り替え |
F2 | 設定メニューを表示 |
例:
htop
- htopを起動htop -u username
- 特定ユーザーのプロセスのみを表示htop -p 1234,5678
- 指定したプロセスIDのみを表示htop -s PERCENT_MEM
- メモリ使用率でソートhtop -d 10
- 10秒間隔で更新htop -t
- ツリー表示モードで起動htop --readonly
- 読み取り専用モードで起動(操作による変更を防止)htop -C
- モノクロモードで起動(一部の環境で有用)
指定したプロセスIDのプロセスにシグナルを送信します。
オプション/シグナル | 説明 |
---|---|
-l | 利用可能なシグナルの一覧を表示 |
-1, -HUP | HUP(ハングアップ)シグナル - 多くの場合、プロセスの再起動や設定の再読み込みに使用 |
-2, -INT | INT(割り込み)シグナル - Ctrl+Cと同等 |
-9, -KILL | KILL(強制終了)シグナル - プロセスを強制的に終了(プロセスが応答しない場合に使用) |
-15, -TERM | TERM(終了)シグナル - デフォルトのシグナル、プロセスに正常終了を要求 |
例:
kill 1234
- プロセスID 1234のプロセスに終了シグナル(TERM)を送信kill -9 1234
- プロセスID 1234のプロセスを強制終了kill -HUP 1234
- プロセスID 1234のプロセスに再起動シグナルを送信kill -l
- 利用可能なすべてのシグナルを一覧表示kill -0 1234
- プロセスの存在確認(シグナルは送信せず、プロセスが存在すれば終了コード0を返す)kill $(pgrep firefox)
- プロセス名でプロセスを終了kill -SIGSTOP 1234
- プロセスを一時停止(SIGCONT で再開可能)kill -SIGCONT 1234
- 一時停止したプロセスを再開
指定した名前のすべてのプロセスにシグナルを送信します。
オプション | 説明 |
---|---|
-i | 各プロセスを終了する前に確認を求める |
-I | 大文字小文字を区別しない |
-u [user] | 指定したユーザーのプロセスのみを終了 |
-s [signal] | 送信するシグナルを指定 |
-v | 詳細な情報を表示 |
例:
killall firefox
- すべてのfirefoxプロセスを終了killall -9 httpd
- すべてのhttpdプロセスを強制終了killall -u username firefox
- 特定ユーザーのfirefoxプロセスを終了killall -i chrome
- 各プロセスを終了する前に確認を求めるkillall -w firefox
- プロセスが完全に終了するまで待機killall -r "fire.*"
- 正規表現にマッチするプロセスを終了(firefoxやfirefox-esr等)killall -o 15m bash
- 15分以上前から実行されているbashプロセスを終了killall -y 10m -o 1h bash
- 1時間以上前から実行され、かつ10分以内に実行されていないbashプロセスを終了
プロセスの実行優先度(nice値)を設定または変更します。nice値は-20(最高優先度)から19(最低優先度)までの範囲で、デフォルトは0です。
コマンド/オプション | 説明 |
---|---|
nice -n [value] [command] | 指定した優先度でコマンドを実行 |
renice [value] -p [pid] | 実行中のプロセスの優先度を変更 |
renice [value] -u [user] | 指定したユーザーのすべてのプロセスの優先度を変更 |
例:
nice -n 10 ./script.sh
- 低い優先度(10)でスクリプトを実行sudo nice -n -10 ./important_task
- 高い優先度(-10)でタスクを実行sudo renice -5 -p 1234
- プロセスID 1234の優先度を-5に変更sudo renice 10 -u username
- 特定ユーザーのすべてのプロセスの優先度を下げるnice
- 現在のシェルのnice値を表示nice -n 19 tar -czf backup.tar.gz /home/user
- バックアップ処理を最低優先度で実行sudo renice -n 5 -g 1000
- グループID 1000のすべてのプロセスの優先度を変更ps -o pid,ni,cmd | grep firefox
- 特定のプロセスの現在のnice値を確認sudo renice -n 0 -p $(pgrep -d ' ' firefox)
- 複数のプロセスIDの優先度を一度に変更
ターミナルを閉じたりログアウトしたりしても、プロセスを継続して実行します。
構文 | 説明 |
---|---|
nohup [command] & | コマンドをバックグラウンドで実行し、ターミナルを閉じても継続して実行 |
例:
nohup ./long_running_script.sh &
- スクリプトをバックグラウンドで実行し、ログアウト後も継続nohup wget https://example.com/large-file.iso &
- ファイルのダウンロードをバックグラウンドで継続nohup ./script.sh > custom_output.log 2>&1 &
- 標準出力と標準エラー出力を指定したファイルにリダイレクトnohup ./script.sh > /dev/null 2>&1 &
- 出力を破棄(ログを残さない場合)nohup nice -n 19 ./backup.sh &
- 低い優先度でバックグラウンド実行echo 'nohup ./script.sh &' | at midnight
- 指定した時間にnohupコマンドを実行nohup bash -c "for i in {1..10}; do ./task.sh; sleep 60; done" &
- 複数のコマンドをnohupで実行
出力は通常、カレントディレクトリの「nohup.out」ファイルにリダイレクトされます。
ジョブをバックグラウンドまたはフォアグラウンドで実行します。
コマンド | 説明 |
---|---|
command & | コマンドをバックグラウンドで実行 |
Ctrl+Z | 実行中のプロセスを一時停止 |
bg | 一時停止したジョブをバックグラウンドで再開 |
bg %[job_id] | 指定したジョブをバックグラウンドで再開 |
fg | 最後に一時停止したジョブをフォアグラウンドで再開 |
fg %[job_id] | 指定したジョブをフォアグラウンドで再開 |
jobs | バックグラウンドジョブの一覧を表示 |
例:
./long_script.sh &
- スクリプトをバックグラウンドで実行jobs
- バックグラウンドジョブの一覧を表示fg %1
- ジョブID 1をフォアグラウンドで再開bg %2
- ジョブID 2をバックグラウンドで再開jobs -l
- バックグラウンドジョブの一覧をプロセスIDも含めて表示jobs -p
- バックグラウンドジョブのプロセスIDのみを表示fg %%
- 最後に停止したジョブをフォアグラウンドで再開bg $(jobs -p | tail -1)
- 最後のジョブをバックグラウンドで再開kill %1
- ジョブID 1を終了disown %1
- ジョブID 1をシェルのジョブ制御から切り離す(ログアウト後も実行を継続)