Linux:watchコマンドでプロセスの状況を一定間隔で監視する

目次

スポンサードリンク

Linux上で稼働するWebサイトを運用していると、プロセスの状況がどのように推移しているか目視確認したいことがありますよね。

例えば、ある画面を表示するとプロセスの使用メモリが急上昇する場合など、毎秒、psコマンドを発行してその結果を見たいことがあります。 そういった場合は watch コマンドを使うと毎回キーボードでコマンドを打たなくても、指定した間隔でコマンドの実行結果を確認することができます。

httpdプロセスを指定した間隔で繰り返し確認する方法

watch -n 2 "ps aux | grep httpd | grep -v grep"
  • -n オプションでコマンドを実行する間隔を秒数で指定する。最小で0.1秒まで指定が可能。なにも指定しなかった場合は2秒間隔(デフォルト)
  • 「ps aux」で実行中のプロセス一覧を表示する。自分以外が実行しているプロセスも含め、全てのプロセスを表示する。
  • 「 grep httpd 」でhttpdという文字列を含むプロセスのみを表示する。
  • 「grep -v grep」でgrepという文字列を含まないプロセスのみを表示する。これをやらないと上記のgrepコマンドやwatchコマンド自体が結果に含まれてします。

実行結果のサンプル

Every 2.0s: ps aux | grep httpd | grep -v grep

root       85193  0.0  0.3 285924  3264 ?        Ss   15:58   0:00 /usr/sbin/httpd -DFOREGROUND
apache     85951  0.0  0.3 300136  2808 ?        S    16:02   0:00 /usr/sbin/httpd -DFOREGROUND
apache     85952  0.0  0.7 1357604 6152 ?        Sl   16:02   0:01 /usr/sbin/httpd -DFOREGROUND
apache     85953  0.0  0.8 1357740 7380 ?        Sl   16:02   0:01 /usr/sbin/httpd -DFOREGROUND
apache     85954  0.0  1.0 1488872 8396 ?        Sl   16:02   0:01 /usr/sbin/httpd -DFOREGROUND
apache     86209  0.0  0.5 1357736 4352 ?        Sl   16:05   0:01 /usr/sbin/httpd -DFOREGROUND

watch コマンドの停止方法

停止したい場合は、Ctrl+c でwatchコマンドの実行を停止できます。


シェルスクリプトの知識は、プログラマにとって長く役立つ知識です。 私はこちらの書籍で一通り知識を抑えました。基本から丁寧に解説されています。

最短3時間で覚えるLinuxシェルスクリプト
こちらは、シェルスクリプトの基本的な書き方、デバッグ方法、if, case, while, forなど基本的な制御構文について書かれています。30日間の無料体験もできる『Kindle Unlimited』でも読むことができます。