#author("2025-03-12T11:53:23+09:00","default:k1rou","k1rou") #author("2025-03-12T11:59:35+09:00","default:k1rou","k1rou") *Linuxのプロセス管理 [#n26a725b] -[[Linuxコマンド]] *プロセスの確認 [#c4cd6bce] **ps [#t2a2cc00] ps ※実行したユーザが起動しているプロセスの情報を表示 -オプション"-"無し ※推奨 ps a ※他のユーザーのプロセスも表示 ps au ※ユーザ名など詳細情報を表示 ps ax ※システム上で実行されている全てのプロセスを表示 ps axu ※プロセスを一覧表示 ps axuf ※プロセスの親子関係をツリー状で表示 ps axl ※様々な情報を表示 ps axv ※メモリ情報を表示 ps axv ※稼働状況を表示 ps l -C <process-name> ※指定したプロセスに絞り込む -オプション"-"あり ps -e ※システム上で実行されている全てのプロセスを表示する ps -ef ※プロセスを一覧表示 ps -efl ※詳細情報を表示する ps -p <PID> ※指定したプロセスIDのプロセス情報のみ表示する ps -flp <PID> -表示される項目 | 項目 | 説明 |h | UID | プロセスを所有するユーザーのID | | PID | プロセスID | | PPID | 親プロセスのプロセスID | | PRI | | | NI | プロセスのnice値(優先度)。範囲は-20(最高)〜19(最低) | | VSZ | メモリ使用量。データセグメント+スタックセグメント | | RSS | 実メモリのサイズ | | WCHAN | カーネル関数名(プロセスが休眠状態の時) | | STAT | プロセスの状態(S:スリープ,R:CPUの空き待ち,D:IO処理中,Z:プロセス終了し親による終了処理待ち,W:スワップアウト,I:アイドルカーネル) | | START | 開始時刻 | | TIME | CPUを使った累計時間 | | TTY | 端末名 | | COMMAND | 実行コマンド名 | | %CPU | CPU使用時間の割合 | | %MEM | 全メモリに対するメモリ使用率 | | MAJFL | メジャーフォールトの発生回数 | | TRS | テキストセグメントのサイズ | | DRS | データセグメントのサイズ | **pgrep [#j8bd58b0] -pgrep <option> <process-name> pgrep <process-name> ※指定したプロセス名のPIDを表示 pgrep -u <username> ※指定したユーザー名が実行したプロセスのPIDを表示 pgrep -u <username> <process-name> pgrep -g <groupname> ※指定したグループ名のユーザーが実行したプロセスのPIDを表示 **top [#v9206062] -実行中のプロセス情報をリアルタイム表示 -プロセスの監視に使われる top ※プロセス監視画面表示 N ※PIDでソート P ※CPU使用率でソート M ※メモリ使用率でソート > ※ソートする項目を右に移す < ※ソートする項目を左に移す q ※終了 -画面の表示 --1行目:システムの稼働状況 --2行目:実行プロセス数 --3行目:CPUの状態 --4行目:メモリの状態 --5行目:スワップの状態 --6行目以降:プロセスごとの情報 ---プロセスの表示順:CPU時間の降順(デフォルト) -表示される項目(psとほぼ同じ。異なるもののみ記載) | 項目 | 説明 |h | DATA | メモリ使用量。データセグメント+スタックセグメント | | RES | 実メモリのサイズ | | S | プロセスの状態(S:スリープ,R:CPUの空き待ち,D:IO処理中,Z:プロセス終了し親による終了処理待ち,W:スワップアウト,I:アイドルカーネル) | | nFLT | メジャーフォールトの発生回数 | | CODE | テキストセグメントのサイズ | | DATA | データセグメントのサイズ | **htop [#tbdc250d] **pstree [#s1b9beda] -実行中のプロセス情報をツール状で表示する pstree **/var/run/*.pid [#i5bd96ef] -PIDが記述されているファイルの内容を表示 cat /var/run/httpd.pid *プロセスの終了 [#d430200c] **kill [#t6ead62e] -プロセスを終了する(PIDを指定する) ※下記3種類とも動作は同じ --kill -<signal-name/signal-id> PID --kill -s <signal-name/signal-id> PID --kill -SIG<signal-name> PID ---終了 kill <PID> ※シグナルを指定しない場合のデフォルトはTERM(15) kill -15 <PID> kill -s 15 <PID> kill -TERM <PID> kill -SIGTERM <PID> ---強制終了 kill -9 <PID> kill -KILL <PID> ---※PIDの複数指定が可能 kill <PID1> <PID2> --使い方の参考 ---TERMシグナルで終了しない場合、KILLシグナルで強制終了する。 ---通常、親プロセスを強制終了すると、子プロセスも終了する。 -指定できるシグナルを表示する kill -l -シグナルの種類(代表的なもののみ) | シグナルID | シグナル名 | 説明 | | 1 | HUP | ハングアップ | | 2 | INT | キーボード入力の割り込み(Ctl+C) | | 9 | KILL | 強制終了 | | 15 | TERM | 終了(デフォルト) | | 18 | CONT | 停止中のプロセスを再開 | | 19 | STOP | 一時停止 | **killall [#n7e778c6] -プロセスを終了する(プロセス名を指定する) ※下記3種類とも動作は同じ --killall -<signal-name/signal-id> <process-name> --killall -s <signal-name/signal-id> <process-name> --killall -SIG<signal-name> <process-name> killall -<signal-name/signal-id> <process-name> killall -s <signal-name/signal-id> <process-name> killall -SIG<signal-name> <process-name> --Apacheのように大量に起動したプロセスを一斉に停止する場合に使う **pkill [#v6724089] -プロセスを終了する(プロセス名を指定する) --pkill -pkill <option> <signal-name/signal-id> <process-name> pkill <process-name> ※指定したプロセス名のプロセスを終了 pkill -9 <process-name> ※指定したプロセス名のプロセスを強制終了 pkill -KILL <process-name> ※指定したプロセス名のプロセスを強制終了 pkill -u <username> <process-name> ※指定したユーザー名が実行したプロセスを終了 pkill -g <groupname> <process-name> ※指定したグループ名のユーザーが実行したプロセスを終了 *プロセスの優先度の指定 [#sfc1b059] **nice [#n7c99bdf] -ナイス値を指定してコマンドを実行 --nice -n <nice-value> <command> nice -n -10 <command> ※実行優先度を10高くしてコマンドを実行(rootユーザーのみ実行可能) nice -n 10 <command> ※実行優先度を10低くしてコマンドを実行 -ナイス値の範囲 -- -20 〜 19(値が小さいほど優先順位が高くなる) -プロセスのナイス値の確認 ps lp <PID> **renice [#gb7d1ac9] -実行中のプロセスのナイス値を変更する --renice <nice-value> -p <PID> ※指定したPIDのプロセス --renice <nice-value> -u <user-name> ※指定したユーザー名のユーザー renice -n -10 -p <PID> ※ナイス値を-10に変更する(rootユーザーのみ実行可能) renice -n 10 -p <PID> ※ナイス値を10に変更する *パッケージ [#q9b89045] -procps *参照 [#t0074d7a] -[[Linuxのジョブ管理]]