Antworten:
Sie könnten MacPorts verwenden :sudo port install proctools
Hier ist das Ergebnis von port search pgrep
:
proctools @0.4pre1 (sysutils)
pgrep, pkill and pfind for OpenBSD and Darwin (Mac OS X)
brew install proctools
Unter OS X Lion mit Homebrew :
$ brew install proctools
Diese Downloads, baut und installiert pgrep
, pkill
und pfind
.
Unter der Annahme, dass Sie eine relativ neue Version von Bash auf dem Mac verwenden, können Sie Ihre eigene Version von pgrep
as function schreiben und diese dann zu Ihrer .bashrc
Datei hinzufügen :
function pgrep() {
ps aux | grep $1 | grep -v grep
}
Was pkill
Sie betrifft, können Sie Folgendes verwenden:
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
Schlüsselwort, es ist veraltet. Siehe diesen Beitrag
Proctools enthält pgrep
und pkill
und ist für OpenBSD und OSX verfügbar. Es wurde eine Weile nicht mehr aktualisiert, sollte aber dennoch funktionieren (zumindest unter OSX, das sein ABI selten ändert).
du könntest es mit killall versuchen. Es bricht Prozesse namentlich ab. Alle Prozesse, die mit der von Ihnen übergebenen Zeichenfolge übereinstimmen, werden abgebrochen.
killall httpd ( kill all apache processes )
killall php ( kill all php process )
Wenn Sie tun
killall -s man ( kill any manual page processes, if a user is using man [command]
Es wird Ihnen eine Liste von Prozessen angezeigt, die wie folgt beendet werden würden.
kill -TERM 70836
Wenn Sie ein anderes Signal wünschen, gehen Sie wie folgt vor
killall -9 processname
Dies war meine Lösung für pkill:
#!/bin/sh
for X in `ps acx | grep -i $1 | awk {'print $1'}`; do
kill -9 $X;
done