ps コマンド
$ ps axu
ハイフンなしのオプション (BSD 形式)
a
:端末を持つプロセスを全て表示するx
:端末を持たないプロセスを全て表示するu
:実行ユーザー、CPU 占有率、メモリ占有率などを表示するw
:表示幅を広げる。2つ指定すると表示幅の制限がなくなる。
ドキュメント:
参考:
ps コマンドについて詳しくまとめました | エンジニアの入り口
ps コマンド – 実行中のプロセスを一覧表示する | @IT
ps コマンドを真面目に使おうとしたので独自目線で纏めた – Qiita
プロセスの状態
l
:アイドル状態 (プロセスが20秒以上スリープしている)R
:実行可能なプロセスS
:スリープ状態 (20秒以内のスリープ)T
:停止しているプロセスU
:割り込みできない待機の状態Z
:既に終了したプロセス (いわゆる「ゾンビプロセス」)
参考:
ps コマンドで表示される内容について調べた – Qiita
プロセスを終了させる
参考:
プロセスを強制終了する 5つの kill 系コマンド | ぺけみさお
kill / killall
SIGTERM
を送る。(プロセスを終了させる。)
$ kill -15 PID
SIGKILL
を送る。(プロセスを強制的に終了させる。)
$ kill -9 PID
送信可能なシグナルを一覧で確認する。
$ kill -l
ドキュメント:
Man page of KILLALL | JM Project
参考:
プロセスを終了する kill コマンドの使い方まとめ! | エンジニアの入り口
kill – プロセスを終了させるコマンド | UX MILK
kill -15 / kill -9 / killall – 掃除して、強く、同じコマンド由来のプロセスを殺す | KAEDE Hack blog
kill コマンド/killallコマンド – 実行中のプロセスを終了させる | @IT
killall – プロセスを終了するコマンド | UX MILK
killall コマンドの使い方 | UNIX / Linux の部屋
killall – プロセスを終了する | 日経クロステック
kill command -9 vs -15 – Stack Overflow
pgrep / pkill
参考:
pkill を使ってプロセス名だけでプロセスを停止する | らくがきちょう
pgrep / pkill を使ってプロセス名から kill するテスト | tweeeety のぶろぐ的めも
pgrep / pkill を用いて親プロセスから再帰的にプロセスを強制的に kill する | 俺的備忘録
pkill – プロセス名を指定してプロセスを kill する | Technical tips
pgrep コマンド – プロセス名や属性からプロセスIDを探す | @IT
pkill コマンド – 名前を指定してプロセスを終了させる | @IT
ゾンビプロセス
ゾンビプロセスは既に終了していて実体のないプロセス
ゾンビプロセスを刈り取る方法
- 親プロセスに
SIGCHLD
シグナルを送る(kill -CHLD
) - または、親プロセスが不要な場合は親プロセスを
kill
する ( プロセスにSIGKILL
を送る /kill -9
)
参考:
ゾンビプロセスが消えるのはいいんですが親プロセスまで死んでしまって大丈夫なんでしょうか – Yahoo! 知恵袋
How to kill zombie process – Stack Overflow
Alternative way to kill a zombie process – Unix & Linux Stack Exchange
proc ディレクトリ
使用例
シェルスクリプトで実行コマンドラインを /proc ディレクトリから読み出す。
mapfile -d '' -t cmd < "/proc/$$/cmdline" for arg in "${cmd[@]}"; do echo "$arg"; done
ドキュメント:
参考:
初心者なりに /proc ディレクトリについて調べてみた – Qiita
proc – ファイルのフォーマットと規約の説明 | kazmax