バックグラウンドで動作させているバッチが予想以上に動いているらしい、でもログを出していないようなので、バッチが動いているかどうかはプロセスの生死で確認するしかない、みたいな状況があったりします。
このためには
$ ps -ef | grep Batch
などとしてプロセスがまだ動いてるなーという確認を繰り返し実施する必要があったりしますがダルい。
繰り返し実行させるために、
$ while : do sleep 1; ps -ef | grep Batch done
などと打ちこむという方法もありますがダルい。
こういうときには watch コマンドを使えばよろしい。
$ watch -n1 'ps -ef | grep Batch'
watch コマンドとは
watch コマンドは、引数で与えられたコマンドを、繰り返し実行してくれるコマンドになる。デフォルトでは 2 秒間隔、変更したいときには -n オプションで秒単位で指定する。
出力は以下のようなクールな感じになり、この画面は毎回描画し直されるため、「あ、ようやくバッチのプロセスがいなくなった!!!」ということが視覚的に分かりやすくなる。
Every 1.0s: ps -ef | grep Batch Sun Jul 22 02:15:34 2012 501 757 467 0 2:15AM ttys001 0:00.01 watch -n1 ps -ef | grep Batch 501 773 757 0 2:15AM ttys001 0:00.00 sh -c ps -ef | grep Batch 501 775 773 0 2:15AM ttys001 0:00.00 grep Batch
毎回描画されるのであれば、前回描画された画面と今回描画された画面の差分が分かるとなお良い。
もちろんその差分表示も watch はサポートしていて、これが -d オプションになる。これを付けると、差分をハイライトして表示してくれる。
このように、気軽に使えるコマンドですので、貴重な時間をコマンドを繰り返し入力するような非生産的な作業に浪費せず、さぁ今すぐトータル・イクリプス 第 2 話を見て絶望の淵に沈みましょう。よろしくおねがいします。