Linuxのプロセス管理 のバックアップソース(No.1)

#author("2020-12-12T18:51:16+09:00","default:k1rou","k1rou")
*Linuxのプロセス管理 [#n26a725b]
-[[Linuxコマンド]]

**プロセスの確認 [#c4cd6bce]
***ps [#t2a2cc00]
 ps ※実行したユーザが起動しているプロセスの情報を表示

-オプション"-"無し ※推奨
 ps a ※他のユーザーのプロセスも表示する
 ps au ※ユーザ名など詳細情報を表示する
 ps ax ※システム上で実行されている全てのプロセスを表示する
 ps aux ※プロセスを一覧表示する
 ps auxf  ※プロセスの親子関係をツリー状で表示する

-オプション"-"あり
 ps -e ※システム上で実行されている全てのプロセスを表示する
 ps -ef ※プロセスを一覧表示
 ps -efl ※詳細情報を表示する
 
 ps -p <PID> ※指定したプロセスIDのプロセス情報のみ表示する
 ps -flp <PID> 

***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 ※プロセス監視画面表示
 q ※終了

-画面の表示
--1行目:システムの稼働状況
--2行目:実行プロセス数
--3行目:CPUの状態
--4行目:メモリの状態
--5行目:スワップの状態
--6行目以降:プロセスごとの情報
---プロセスの表示順:CPU時間の降順(デフォルト)

***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>

***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に変更する

**参照 [#t0074d7a]
-[[Linuxのジョブ管理]]