Mac OS Xのpgrep
およびpkill
コマンドに代わるものはありますか、または使用可能な他のコマンドを使用してそれらのエイリアスを作成する必要がありますか?
MacPorts を使用できます:Sudo port install proctools
port search pgrep
の結果は次のとおりです:
proctools @0.4pre1 (sysutils)
pgrep, pkill and pfind for OpenBSD and Darwin (Mac OS X)
Homebrew を使用するOS X Lionの場合:
$ brew install proctools
これにより、pgrep
、pkill
およびpfind
がダウンロード、ビルド、およびインストールされます。
MacOS 10.8以降では、pgrep
とpkill
がデフォルトで使用可能になっているので、もう代替は必要ありません。
Macで比較的最近のバージョンのBashを使用していると想定すると、独自のバージョンのpgrep
を関数として記述し、それを.bashrc
ファイルに追加できます。
function pgrep() {
ps aux | grep $1 | grep -v grep
}
pkill
については、以下を使用できます。
function pkill() {
local pid
pid=$(ps ax | grep $1 | grep -v grep | awk '{ print $1 }')
kill -9 $pid
echo -n "Killed $1 (process $pid)"
}
Proctools にはpgrep
およびpkill
が含まれており、OpenBSDおよびOSXで使用できます。しばらく更新されていませんが、動作するはずです(少なくともOSXではABIをほとんど変更しないため)。
あなたはkillallを試すことができます。名前でプロセスを強制終了します。渡した文字列に一致するプロセスはすべて強制終了されます。
killall httpd ( kill all Apache processes )
killall php ( kill all php process )
もし、するなら
killall -s man ( kill any manual page processes, if a user is using man [command]
以下のように強制終了されるプロセスのリストが表示されます。
kill -TERM 70836
別の信号が必要な場合は、次の操作を行います
killall -9 processname
これはpkillの私の解決策でした:
#!/bin/sh
for X in `ps acx | grep -i $1 | awk {'print $1'}`; do
kill -9 $X;
done