pgrep y pkill alternativas en mac os x?


23

¿Hay alternativas pgrepy pkillcomandos en Mac OS X o debería crear alias para ellos usando otros comandos disponibles para mí?

Respuestas:


11

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)

3
proctools también está disponible a través de Homebrew
Andrew Marshall

@ AndrewMarshall tiene razón. Para probar homebrewbrew install proctools
cwd el

18

En OS X Lion con Homebrew :

$ brew install proctools

Esto descarga, construye e instala pgrep, pkilly pfind.


¿Sería posible construir una GUI para que funcione de la manera que xkill lo hace pero para OSX?
Jonas Oestman

11

Ya no necesita una alternativa: desde MacOS 10.8 pgrepy pkillestán disponibles por defecto.


10

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)"
}

Estoy en un Z Shell, aunque no debería haber problemas para adaptar esto.
Eimantas

1
o / bin / kill $ (ps ax | awk '$ 5 ~ /' "$ 1" '/ {print $ 1}') para un pgrep más fiel (solo el nombre del proceso, no los argumentos. Utilizo / bin / kill por costumbre porque se necesita más de un PID para matar. Hay otros trucos, si tienes el control de la expresión regular para nunca tener que 'grep -v grep', ¡de esa manera puedes matar a greps!)
jrg

Le sugiero que elimine la functionpalabra clave, está en desuso. Ver esta publicación
SiegeX

Usted es maravilloso.
Bijan

2

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).


Proctools no compila bien con Snow Leopard

1

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.