alternative pgrep e pkill su mac os x?


23

Esistono alternative pgrepe pkillcomandi su Mac OS X o devo semplicemente creare alias per loro usando altri comandi disponibili per me?

Risposte:


11

Puoi usare MacPorts :sudo port install proctools

Ecco il risultato di port search pgrep:

proctools @0.4pre1 (sysutils)
    pgrep, pkill and pfind for OpenBSD and Darwin (Mac OS X)

3
proctools è disponibile anche via Homebrew
Andrew Marshall il

@AndrewMarshall ha ragione. Per provare homebrewbrew install proctools
cwd

18

Su OS X Lion con Homebrew :

$ brew install proctools

Questo download, costruisce e installa pgrep, pkille pfind.


Sarebbe possibile costruire una GUI per funzionare come fa xkill ma per OSX
Jonas Oestman,

11

Non hai più bisogno di un'alternativa: da MacOS 10.8 pgrepe pkillsono disponibili per impostazione predefinita.


10

Supponendo che tu stia utilizzando una versione relativamente recente di Bash sul Mac, potresti scrivere la tua versione di pgrepcome funzione e quindi aggiungerla al tuo .bashrcfile:

function pgrep() {
    ps aux | grep $1 | grep -v grep
}

per quanto riguarda pkillè possibile utilizzare quanto segue:

function pkill() {
    local pid
    pid=$(ps ax | grep $1 | grep -v grep | awk '{ print $1 }')
    kill -9 $pid
    echo -n "Killed $1 (process $pid)"
}

Sono su una Z Shell, anche se non ci dovrebbero essere problemi nell'adattarlo.
Eimantas,

1
o / bin / kill $ (ps ax | awk '$ 5 ~ /' "$ 1" '/ {print $ 1}') per un pgrep più fedele (solo nome del processo, non arg. Uso / bin / kill per abitudine perché ci vuole più di un PID in modo affidabile per uccidere. Ci sono altri trucchi, se hai il controllo della regexp per non dover mai 'grep -v grep' - in questo modo puoi farcela grep!)
jrg

Ti suggerisco di rimuovere la functionparola chiave, è obsoleta. Vedi questo messaggio
SiegeX,

Sei fantastico.
Bijan,

2

Proctools include pgreped pkilled è disponibile per OpenBSD e OSX. Non è stato aggiornato da un po ', ma dovrebbe comunque funzionare (almeno su OSX che modifica raramente la sua ABI).


Proctools non si compila bene con Snow Leopard

1

potresti provare killall. Uccide i processi per nome. Tutti i processi che corrispondono alla stringa passata vengono eliminati.

killall httpd ( kill all apache processes )
killall php ( kill all php process )

Se fate

killall -s man ( kill any manual page processes, if a user is using man [command]

ti mostrerà un elenco di processi che verrebbero uccisi come di seguito.

kill -TERM 70836

Se si desidera un segnale diverso, procedere come segue

killall -9 processname

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.