Você pode usar MacPorts : sudo port install proctools
Veja o resultado de port search pgrep
:
proctools @0.4pre1 (sysutils)
pgrep, pkill and pfind for OpenBSD and Darwin (Mac OS X)
Existem alternativas para os comandos pgrep
e pkill
no Mac OS X ou devo criar aliases para eles usando outros comandos disponíveis para mim?
Você pode usar MacPorts : sudo port install proctools
Veja o resultado de port search pgrep
:
proctools @0.4pre1 (sysutils)
pgrep, pkill and pfind for OpenBSD and Darwin (Mac OS X)
No OS X Lion com Homebrew :
$ brew install proctools
Isso faz o download, cria e instala pgrep
, pkill
e pfind
.
Supondo que você esteja usando uma versão relativamente recente do Bash no Mac, você pode escrever sua própria versão da função pgrep
as e adicioná-la ao seu arquivo .bashrc
:
function pgrep() {
ps aux | grep $1 | grep -v grep
}
como para pkill
, você pode usar o seguinte:
function pkill() {
local pid
pid=$(ps ax | grep $1 | grep -v grep | awk '{ print $1 }')
kill -9 $pid
echo -n "Killed $1 (process $pid)"
}
Você não precisa mais de uma alternativa: já que o MacOS 10,8 pgrep
e pkill
estão disponíveis por padrão.
Proctools inclui pgrep
e pkill
e está disponível para o OpenBSD e OSX. Ele não foi atualizado há algum tempo, mas ainda deve funcionar (pelo menos no OSX que raramente modifica sua ABI).
você pode tentar o killall. Ele mata processos pelo nome. Todos os processos que correspondem à string que você passa são mortos.
killall httpd ( kill all apache processes )
killall php ( kill all php process )
Se você fizer
killall -s man ( kill any manual page processes, if a user is using man [command]
ele mostrará uma lista de processos que seriam mortos, como abaixo.
kill -TERM 70836
Se você quiser um sinal diferente, faça o seguinte
killall -9 processname
Esta foi a minha solução para pkill:
#!/bin/sh
for X in 'ps acx | grep -i $1 | awk {'print $1'}'; do
kill -9 $X;
done