web-dev-qa-db-fra.com

Vous cherchez à utiliser kill -9 au lieu de killall

Vous cherchez à utiliser kill -9 au lieu de killall en utilisant le nom du processus.

Existe-t-il un moyen de grep ou awk le pid d'un nom de processus donné, puis de le tuer kill -9? killall échoue beaucoup pour moi.

Je cherche à écrire ceci pour de nombreuses machines distantes.
Le nom du processus sera l'un des trois.
Je veux utiliser quelque chose comme:

sshpass -p 'password' ssh -n $user@$hostname "one liner to use kill -9"

Des idées?

1
Preston Cole

Le -9 l'argument que vous avez mentionné spécifie le signal kill à envoyer au processus en question. La valeur par défaut est SIGTERM (terminer l'application), 9 est équivalent à SIGKILL (tuer l'application immédiatement et le plus brutalement).

killall accepte les arguments de signal (comme -9 ou -KILL, Je préfère les noms symboliques aux nombres) aussi:

killall -KILL processname

Alternativement, il y a pkill, qui tue les processus qui correspondent à un modèle de commande donné, qui accepte également les arguments de signal. Vous pouvez "prévisualiser" ce qui pourrait être tué en utilisant pgrep -a, qui répertorie les progrès de correspondance au lieu d'envoyer un signal et de les tuer:

pgrep -a processname
pkill processname

Si vous souhaitez faire correspondre votre modèle à l'ensemble de la commande, y compris ses arguments et pas seulement à la commande de base, ajoutez le -f commutateur:

pgrep -a -f something
pkill -f something

Pour plus d'informations, consultez les pages de manuel correspondantes: man kill, man killall, man pkill pour les différentes commandes kill et man 7 signal pour un aperçu des signaux disponibles.

6
Byte Commander