Відповіді:
Ви можете використовувати 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)"
}
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