#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のジョブ管理]]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS