プロセスの表示、監視、制御などを行うコマンドです。
実行中のプロセスを表示します。
| オプション | 説明 |
|---|---|
| -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をシェルのジョブ制御から切り離す(ログアウト後も実行を継続)