alternatives pgrep et pkill sur mac os x?


23

Existe-t-il des alternatives pgrepet des pkillcommandes sur Mac OS X ou dois-je simplement créer des alias pour eux en utilisant d'autres commandes disponibles pour moi?

Réponses:


11

Vous pouvez utiliser MacPorts :sudo port install proctools

Voici le résultat de port search pgrep:

proctools @0.4pre1 (sysutils)
    pgrep, pkill and pfind for OpenBSD and Darwin (Mac OS X)

3
proctools est également disponible via Homebrew
Andrew Marshall

@AndrewMarshall a raison. Pour l'essai homebrewbrew install proctools
CWD

18

Sur OS X Lion avec Homebrew :

$ brew install proctools

Cela télécharge, construit et installe pgrep, pkillet pfind.


Serait-il possible de construire une interface graphique pour fonctionner comme le fait xkill mais pour OSX
Jonas Oestman

11

Vous n'avez plus besoin d'alternative: depuis MacOS 10.8 pgrepet pkillsont disponibles par défaut.


10

En supposant que vous utilisez une version relativement récente de Bash dans le Mac, vous pouvez écrire votre propre version de pgrepas, puis l'ajouter à votre .bashrcfichier:

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

quant à pkillvous pouvez utiliser ce qui suit:

function pkill() {
    local pid
    pid=$(ps ax | grep $1 | grep -v grep | awk '{ print $1 }')
    kill -9 $pid
    echo -n "Killed $1 (process $pid)"
}

Je suis sur un Z Shell, bien qu'il ne devrait y avoir aucun problème à l'adapter.
Eimantas

1
ou / bin / kill $ (ps ax | awk '$ 5 ~ /' "$ 1" '/ {print $ 1}') pour un pgrep plus fidèle (nom de processus uniquement, pas d'arguments. J'utilise / bin / kill par habitude parce que il faut de manière fiable plus d'un PID pour tuer. Il existe d'autres astuces, si vous contrôlez l'expression rationnelle pour ne jamais avoir à 'grep -v grep' - de cette façon, vous pouvez pkill greps!)
jrg

Je vous suggère de supprimer le functionmot clé, il est obsolète. Voir cet article
SiegeX

Tu es incroyable.
Bijan

2

Proctools inclut pgrepet pkillest disponible pour OpenBSD et OSX. Il n'a pas été mis à jour depuis un certain temps, mais il devrait quand même fonctionner (au moins sur OSX qui modifie rarement son ABI).


Proctools ne compile pas bien avec Snow Leopard

1

vous pouvez essayer killall. Il tue les processus par leur nom. Tous les processus qui correspondent à la chaîne que vous transmettez sont supprimés.

killall httpd ( kill all apache processes )
killall php ( kill all php process )

Si tu fais

killall -s man ( kill any manual page processes, if a user is using man [command]

il vous montrera une liste des processus qui seraient tués comme ci-dessous.

kill -TERM 70836

Si vous voulez un signal différent, procédez comme suit

killall -9 processname

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.