¿Hay alternativas a los comandos pgrep
y pkill
en Mac OS X o debería crearles alias usando otros comandos disponibles para mí?
Puede 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)
En OS X Lion con Homebrew :
$ brew install proctools
Esto descarga, construye e instala pgrep
, pkill
y pfind
.
Ya no necesita una alternativa: ya que MacOS 10.8 pgrep
y pkill
están disponibles de forma predeterminada.
Suponiendo que está utilizando una versión relativamente reciente de Bash en la Mac, puede escribir su propia versión de pgrep
como función y luego agregarla a su .bashrc
expediente:
function pgrep() {
ps aux | grep $1 | grep -v grep
}
en cuanto a pkill
puede usar 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)"
}
Proctools incluye pgrep
y pkill
y está 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