Linux で実行中の Java プロセスを探す
CentOS 7 系でのお話。
Java プロセスの情報を取得するには jps
コマンドでも良いが、ps
コマンドと grep
コマンドで調べるイディオムを覚えておくと汎用性があるので紹介。
# 実行中の Java プロセスを表示する
$ ps aux | grep java
このイディオムに関するドンズバな解説があったので以下に引用。
ps
コマンド:実行中のプロセスを表示aux
はオプションa
:自分以外のユーザーのプロセスも表示するu
:ユーザー名と開始時刻を表示するx
:制御端末のないプロセスの情報も表示する実際には、
grep
コマンドとセットで用いることが多い。
|
:パイプ(左のコマンドの結果を右のコマンドの引数に渡す)grep
コマンド:文字列検索左から順に、
- USER:プロセスの所有ユーザー
- PID:プロセス番号
- %CPU:CPUの占有率
- %MEM:実メモリでの占有率
- VSZ:仮想分も含めた使用サイズ(Kバイト)
- RSS:実メモリ上の使用サイズ(Kバイト)
- TT:端末名
- STAT:プロセスの状態
- R:稼動中
- S:一時停止中
- D:停止不可能で一時停止
- T:終了処理中
- Z:ゾンビプロセス(すでに実体は無い)
- W:実メモリ上に無くて,スワップアウトしている
- N:nice値
- STARTED:プロセスの開始時刻
- TIME:プロセスの総実行時間
- COMMAND:実行コマンド名とパス(シェル表記の場合もあり)
ちなみに、grep
コマンドはカラーオプション付きでエイリアスにしちゃうと Grep 結果が見やすくてオススメ。
# .bashrc にでも書いておく
alias grep='grep --color'
--color=always
かも?Windows の GitBash だと上のエイリアスでパイプ後も色が付いていた。