Existem alternativas para os comandos pgrep
e pkill
no Mac OS X ou devo apenas criar aliases para eles usando outros comandos disponíveis para mim?
Você poderia usar MacPorts : Sudo port install proctools
Aqui está 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 baixa, cria e instala pgrep
, pkill
e pfind
.
Você não precisa mais de uma alternativa: como o MacOS 10.8 pgrep
e pkill
estão disponíveis por padrão.
Supondo que você esteja usando uma versão relativamente recente do Bash no Mac, você pode escrever sua própria versão de pgrep
como função e adicioná-la ao seu .bashrc
Arquivo:
function pgrep() {
ps aux | grep $1 | grep -v grep
}
quanto a 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)"
}
Proctools inclui pgrep
e pkill
e está disponível para OpenBSD e OSX. Ele não é atualizado há algum tempo, mas ainda deve funcionar (pelo menos no OSX, que raramente modifica sua ABI).
você pode tentar matar tudo. Mata processos por nome. Quaisquer processos que correspondam à string que você passa são eliminados.
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]
mostrará uma lista de processos que seriam eliminados como abaixo.
kill -TERM 70836
Se você deseja 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