6 votes

Tuer un processus exécuté par un utilisateur spécifique

Disons que j'ai plusieurs utilisateurs exécutant simultanément des processus ''ruby''. Comment puis-je écrire une commande shell pour tuer le processus ''ruby'' d'un utilisateur particulier ? (Je suis sur CentOS 5.5.)

10voto

Kyle Brandt Points 81077

Pkill est bon pour cela:

pkill -u utilisateurParticulier ruby

Vous pouvez utiliser pgrep avec ceci comme test avant de l'exécuter pour voir le nom du processus et le pid de ce qui sera signalé:

pgrep -u utilisateurParticulier -l ruby

1voto

Zypher Points 36865

Vous pouvez utiliser l'interrupteur -u pour killall pour limiter la portée à un seul utilisateur. Ainsi, pour l'utilisateur abc, vous pourriez faire : killall -u abc /usr/bin/ruby (ou tout ce qui correspondra aux processus ruby)

de man killall:

-u, --user
Tue uniquement les processus appartenant à l'utilisateur spécifié. Les noms de commande sont facultatifs.

1voto

ewwhite Points 193555

Dans le pire des cas, si vous pouvez vous connecter ou su - en tant qu'utilisateur, vous pouvez exécuter la fameuse commande kill -9 -1 EN tant qu'utilisateur pour nettoyer leurs processus.

NE PAS exécuter en tant que root :)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X