日記

ps+grepのTipsに感動した

ひさびさに目から鱗(うろこ)が落ちました。たまたま見つけた次のサイト。

clmemo@aka: ps + grep の Tips

よくサーバーが起動しているかどうか確認するときにpsコマンドで見るじゃないですか。たとえばapacheのプロセスが起動しているかを見るときは

$ ps alx | grep apache
5 33 11347 11020 15 0 158848 2056 341702 S ? 0:00 /usr/sbin/apache2 -k start
5 33 11352 11020 16 0 183436 2132 341162 S ? 0:00 /usr/sbin/apache2 -k start
0 1000 12296 17847 18 0 4956 792 – R+ pts/4 0:00 grep apache

などとするのですが、こうすると運が悪いとgrepのプロセスもリストに入ってきます。で、上記のサイトで知ったTipsは”grep apache”ではなく”grep [a]pache”とすること。実際にはシェルが展開するのを防ぐため「”」でクォートする必要があります。

一瞬、「そんなことしてもapacheも[a]pacheも正規表現的には同じなのでどっちみちgrepプロセスは引っかかってくるよ。」と思いましたが、やってみると確かにgrepプロセスが引っ掛からなくなっている。で、しばらくして「あっ」と気付きました。

そうです。”grep [a]pache”とやるとpsコマンドの結果にも”grep [a]pache”と表示されるので”grep apache”にも”grep [a]pache”にもマッチしません。

ちなみにいつもは”ps alx | grep apache | grep -v grep”などとやってましたがタイプが面倒なので脳内で消していました。横着者の私としてはこれで「”」がなければ完璧なTIPSなのですが…。

similar posts

2 Comments

comment

よろしければ、コメントをどうぞ。トラックバックはこちら

このエントリーのコメントの購読

次のHTMLタグが使えます。: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

*Required Fields