it-swarm-es.tech

pgrep y pkill alternativas en mac os x?

¿Hay alternativas a los comandos pgrep y pkill en Mac OS X o debería crearles alias usando otros comandos disponibles para mí?

23
Eimantas

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)
11
Ricket

En OS X Lion con Homebrew :

$ brew install proctools

Esto descarga, construye e instala pgrep, pkill y pfind.

18
Joe Walp

Ya no necesita una alternativa: ya que MacOS 10.8 pgrep y pkill están disponibles de forma predeterminada.

11
Beat

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)"
}
10
λ Jonas Gorauskas

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
1
Jerry Saravia

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