Réponses:
Vous pouvez utiliser MacPorts :sudo port install proctools
Voici le résultat de port search pgrep
:
proctools @0.4pre1 (sysutils)
pgrep, pkill and pfind for OpenBSD and Darwin (Mac OS X)
brew install proctools
Sur OS X Lion avec Homebrew :
$ brew install proctools
Cela télécharge, construit et installe pgrep
, pkill
et pfind
.
En supposant que vous utilisez une version relativement récente de Bash dans le Mac, vous pouvez écrire votre propre version de pgrep
as, puis l'ajouter à votre .bashrc
fichier:
function pgrep() {
ps aux | grep $1 | grep -v grep
}
quant à pkill
vous pouvez utiliser ce qui suit:
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
mot clé, il est obsolète. Voir cet article
Proctools inclut pgrep
et pkill
est disponible pour OpenBSD et OSX. Il n'a pas été mis à jour depuis un certain temps, mais il devrait quand même fonctionner (au moins sur OSX qui modifie rarement son ABI).
vous pouvez essayer killall. Il tue les processus par leur nom. Tous les processus qui correspondent à la chaîne que vous transmettez sont supprimés.
killall httpd ( kill all apache processes )
killall php ( kill all php process )
Si tu fais
killall -s man ( kill any manual page processes, if a user is using man [command]
il vous montrera une liste des processus qui seraient tués comme ci-dessous.
kill -TERM 70836
Si vous voulez un signal différent, procédez comme suit
killall -9 processname
C'était ma solution pour pkill:
#!/bin/sh
for X in `ps acx | grep -i $1 | awk {'print $1'}`; do
kill -9 $X;
done