Linuxのプロセス管理

2023-10-01 (日) 22:54:14

Linuxのプロセス管理

プロセスの確認

ps

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

  • pgrep <option> <process-name>
    pgrep <process-name> ※指定したプロセス名のPIDを表示
    pgrep -u <username> ※指定したユーザー名が実行したプロセスのPIDを表示
    pgrep -u <username> <process-name>
    pgrep -g <groupname> ※指定したグループ名のユーザーが実行したプロセスのPIDを表示

top

  • 実行中のプロセス情報をリアルタイム表示
  • プロセスの監視に使われる
    top ※プロセス監視画面表示
    q ※終了
  • 画面の表示
    • 1行目:システムの稼働状況
    • 2行目:実行プロセス数
    • 3行目:CPUの状態
    • 4行目:メモリの状態
    • 5行目:スワップの状態
    • 6行目以降:プロセスごとの情報
      • プロセスの表示順:CPU時間の降順(デフォルト)

htop

pstree

  • 実行中のプロセス情報をツール状で表示する
    pstree

/var/run/*.pid

  • PIDが記述されているファイルの内容を表示
    cat /var/run/httpd.pid

プロセスの終了

kill

  • プロセスを終了する(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シグナル名説明
    1HUPハングアップ
    2INTキーボード入力の割り込み(Ctl+C)
    9KILL強制終了
    15TERM終了(デフォルト)
    18CONT停止中のプロセスを再開
    19STOP一時停止

killall

  • プロセスを終了する(プロセス名を指定する) ※下記3種類とも動作は同じ
    • killall -<signal-name/signal-id> <process-name>
    • killall -s <signal-name/signal-id> <process-name>
    • killall -SIG<signal-name> <process-name>

pkill

  • プロセスを終了する(プロセス名を指定する)
    • 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> ※指定したグループ名のユーザーが実行したプロセスを終了

プロセスの優先度の指定

nice

  • ナイス値を指定してコマンドを実行
    • nice -n <nice-value> <command>
      nice -n -10 <command> ※実行優先度を10高くしてコマンドを実行(rootユーザーのみ実行可能)
      nice -n 10 <command> ※実行優先度を10低くしてコマンドを実行
  • ナイス値の範囲
    • -20 〜 19(値が小さいほど優先順位が高くなる)
  • プロセスのナイス値の確認
    ps lp <PID>

renice

  • 実行中のプロセスのナイス値を変更する
    • 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に変更する

パッケージ

  • procps

参照