Ответы:
Вы можете использовать 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