Risposte:
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)
brew install proctools
Su OS X Lion con Homebrew :
$ brew install proctools
Questo download, costruisce e installa pgrep
, pkill
e pfind
.
Supponendo che tu stia utilizzando una versione relativamente recente di Bash sul Mac, potresti scrivere la tua versione di pgrep
come funzione e quindi aggiungerla al tuo .bashrc
file:
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)"
}
function
parola chiave, è obsoleta. Vedi questo messaggio
Proctools include pgrep
ed pkill
ed è disponibile per OpenBSD e OSX. Non è stato aggiornato da un po ', ma dovrebbe comunque funzionare (almeno su OSX che modifica raramente la sua ABI).
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
Questa era la mia soluzione per pkill:
#!/bin/sh
for X in `ps acx | grep -i $1 | awk {'print $1'}`; do
kill -9 $X;
done