Ответы:
Вы можете использовать MacPorts :sudo port install proctools
Вот результат port search pgrep:
proctools @0.4pre1 (sysutils)
pgrep, pkill and pfind for OpenBSD and Darwin (Mac OS X)
brew install proctools
На OS X Lion с домашним пивом :
$ brew install proctools
Это загружает, строит и устанавливает pgrep, pkillи pfind.
Предполагая, что вы используете сравнительно недавнюю версию Bash на Mac, вы можете написать свою собственную версию 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)"
}
functionключевое слово, оно устарело. Смотрите это сообщение
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