Respuestas:
Podrías usar MacPorts :sudo port install proctools
Aquí está el resultado de port search pgrep:
proctools @0.4pre1 (sysutils)
pgrep, pkill and pfind for OpenBSD and Darwin (Mac OS X)
brew install proctools
En OS X Lion con Homebrew :
$ brew install proctools
Esto descarga, construye e instala pgrep, pkilly pfind.
Suponiendo que está utilizando una versión relativamente reciente de Bash en la Mac, puede escribir su propia versión de pgrepcomo función y luego agregarla a su .bashrcarchivo:
function pgrep() {
ps aux | grep $1 | grep -v grep
}
En cuanto a pkillusted puede utilizar lo siguiente:
function pkill() {
local pid
pid=$(ps ax | grep $1 | grep -v grep | awk '{ print $1 }')
kill -9 $pid
echo -n "Killed $1 (process $pid)"
}
functionpalabra clave, está en desuso. Ver esta publicación
Proctools incluye pgrepy pkillestá disponible para OpenBSD y OSX. No se ha actualizado en mucho tiempo, pero aún debería funcionar (al menos en OSX que rara vez modifica su ABI).
podrías probar killall. Mata los procesos por su nombre. Todos los procesos que coinciden con la cadena que pasa se eliminan.
killall httpd ( kill all apache processes )
killall php ( kill all php process )
Si lo haces
killall -s man ( kill any manual page processes, if a user is using man [command]
le mostrará una lista de procesos que serían eliminados como a continuación.
kill -TERM 70836
Si desea una señal diferente, haga lo siguiente
killall -9 processname
Esta fue mi solución para pkill:
#!/bin/sh
for X in `ps acx | grep -i $1 | awk {'print $1'}`; do
kill -9 $X;
done