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