実行中のrailsプロセスを抹殺する場合
という流れをとっていました。
巷の入門サイトなんかでも、よくある解説ですね。
ですがまぁ……創造的怠惰に手足が生えたようなUNIXハッカーの事、こんな二度手間を許容するわけがないですね。
調べてみたら、案の定あったんです。以上を一発で実現するコマンドが。
pgrep
$ pgrep ruby 79459 $ ps -ax | grep ruby 79459 ?? 0:00.00 ruby weatherd.rb 79462 ttys005 0:00.00 grep ruby
ps -ax | grep hoge | grep -v grep をまとめてやってくれる賢い子です。
一度知ったら戻れませんね。
-lオプション
プロセス名が欲しい場合は「-l」オプションをつけて下さい。
$ pgrep -l -f VBox 56123 /Applications/VirtualBox.app/Contents/MacOS/VBoxHeadless --comment ubuntu ... 50567 /Applications/VirtualBox.app/Contents/MacOS/VBoxNetDHCP --network ... 38731 /Applications/VirtualBox.app/Contents/MacOS/VBoxSVC --auto-shutdown 38729 /Applications/VirtualBox.app/Contents/MacOS/VBoxXPCOMIPCD
実に長いプロセス名があったのですが、省略しました。
実際にはちゃと全文でます。
pkill
$ pkill ruby $ ps -ax | grep ruby 79468 ttys005 0:00.00 grep ruby
pgrep + kill なコマンドです。
念のためお決まりのコマンドで確認しても、ちゃんと消えてます。
ただし、一致したら問答無用でGYAKUSATSUします。
注意して使った方が良いかと。