web-development-kb-pt.site

alternativas pgrep e pkill no mac os x?

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?

23
Eimantas

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)
11
Ricket

No OS X Lion com Homebrew :

$ brew install proctools

Isso baixa, cria e instala pgrep, pkill e pfind.

18
Joe Walp

Você não precisa mais de uma alternativa: como o MacOS 10.8 pgrep e pkill estão disponíveis por padrão.

11
Beat

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)"
}
10
λ Jonas Gorauskas

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).

2

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
1
Jerry Saravia

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
1
Ryan Thomas Correia Ortega