alternativas pgrep e pkill no mac os x?


23

Existem alternativas pgrepe pkillcomandos no Mac OS X ou devo apenas criar aliases para eles usando outros comandos disponíveis para mim?

Respostas:


11

Você poderia usar o 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)

3
proctools também está disponível via Homebrew
Andrew Marshall

@AndrewMarshall está certo. Para homebrew trybrew install proctools
cwd 29/03

18

No OS X Lion com Homebrew :

$ brew install proctools

Este download, constrói e instala pgrep, pkille pfind.


Haveria possível construir uma GUI para o trabalho da maneira xkill faz, mas para OSX
Jonas Oestman

11

Você não precisa mais de uma alternativa: desde o MacOS 10.8 pgrepe pkillestá disponível por padrão.


10

Supondo que você esteja usando uma versão relativamente recente do Bash no Mac, você pode escrever sua própria versão de pgrepcomo function e adicioná-la ao seu .bashrcarquivo:

function pgrep() {
    ps aux | grep $1 | grep -v grep
}

quanto a pkillvocê 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)"
}

Estou em um Z Shell, embora não deva haver problemas em adaptar isso.
Eimantas

1
ou / bin / kill $ (ps ax | awk '$ 5 ~ /' "$ 1" '/ {print $ 1}') para um pgrep mais fiel (somente o nome do processo, não args. Eu uso / bin / kill por hábito, porque de maneira confiável, é necessário mais de um PID para matar.Existem outros truques, se você estiver no controle do regexp para nunca precisar 'grep -v grep' - dessa maneira, pode pkill greps!)
jrg

Sugiro que você remova a functionpalavra-chave, está obsoleta. Veja este post
SiegeX

Você é demais.
Bijan

2

O Proctools inclui pgrepe pkillestá disponível para o OpenBSD e OSX. Ele não é atualizado há algum tempo, mas ainda deve funcionar (pelo menos no OSX, que raramente modifica sua ABI).


O Proctools não compila bem com o Snow Leopard

1

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.