はてブロ@ama_ch

https://twitter.com/ama_ch

目的のプロセスをコマンド一発で見つける方法

$ alias pfind='ps aux | grep '

Helpful alias to grep for the PID. | Command-line Fu

こういう方法が紹介されていたけど、これだとgrep自身のプロセスが表示されちゃうから、こうした方が良いと思う。

function pfd(){
    PSAUX=$(ps aux)
    echo $PSAUX | head -1
    echo $PSAUX | grep $1 | grep -v grep
}

実行結果の違い

21:54 ama-ch% ps aux | grep Firefox                                                                                                                                            [~]
ama-ch     477  59.3  9.2  1453984 385752   ??  Rs    9:53AM 242:26.88 /Applications/Firefox.app/Contents/MacOS/firefox-bin -foreground
ama-ch    8887   0.0  0.0    87080    320 s001  R+   10:01PM   0:00.00 grep Firefox
22:01 ama-ch% pfd Firefox                                                                                                                                                      [~]
USER       PID %CPU %MEM      VSZ    RSS   TT  STAT STARTED      TIME COMMAND
ama-ch     477  57.0  9.2  1453488 385256   ??  Rs    9:53AM 242:30.85 /Applications/Firefox.app/Contents/MacOS/firefox-bin -foreground

後者の方が見やすいです多分!


あと参照元ページのコメントに「pidofかpgrep使えボケ*1」って書いてあったので、MacPortsで調べてみた。

21:48 ama-ch% port search pidof
No match for pidof found
21:49 ama-ch% port search pgrep
proctools @0.4pre1 (sysutils)
    pgrep, pkill and pfind for OpenBSD and Darwin (Mac OS X)

pgrepは見つかりました。pgrep,pkill,pfindがセットなのかぁ。
使ってみたけどpidが出るだけでよくわからりませんでした。酔っぱらってるからかも知れません。

*1:意訳ってレベルじゃねーぞ