Comment tuer tous les processus d'un utilisateur?
Quand je fais ps aux
J'obtiens une liste de processus avec plusieurs utilisateurs, et je veux tuer tous les processus de l'utilisateur name1
par exemple! Qu'est-ce qu'une commande pour faire cela dans Ubuntu?
Dans ce cas, c'est assez simple, vous pouvez utiliser killall
pour tuer ou envoyer tout autre signal à un tas de processus à la fois. L'une des options de "filtrage" est le propriétaire: killall --user name1
Ajout d'une autre option car personne ne l'a mentionné et je n'aime pas killall
(son utilisation sur solaris peut provoquer un désastre).
pkill
est plus portable
pkill -u username
Identifiez l'utilisateur, puis killall -user <username>
Ils auront un processus bash (ou similaire) associé à leur session de connexion qui tuera leur session.
Pour obtenir une meilleure vue d'ensemble de ce que fait un utilisateur, essayez pstree <username>
Installez slay
:
installer aptitude slay
Ensuite, lancez slay some-user
.
Sachez que si vous tuez des choses pour des utilisateurs dont vous ne connaissez pas le but, vous risquez de rendre votre machine inutilisable (jusqu'à ce que vous redémarriez).
Si vous ne voulez vraiment pas installer Slay:
ps -e -o user,pid | grep '^some-user ' | awk '{ print $2 }' | xargs kill
(attends un peu)
ps -e -o user,pid | grep '^some-user ' | awk '{ print $2 }' | xargs kill -9