Tuer tous les processus d'utilisateurs dans Ubuntu?


20

Comment tuer tous les processus d'un utilisateur?

Quand je fais ps auxj'obtiens une liste de processus avec plusieurs utilisateurs, et je veux tuer tous les processus d'utilisateur name1par exemple! Qu'est-ce qu'une commande pour faire cela dans Ubuntu?



1
Si les utilisateurs sont de vraies personnes, ce n'est probablement pas une bonne idée. Je pense aussi que vous voulez tuer les processus pour gagner du temps. C'est une très mauvaise idée. Par exemple, les services dans Ubuntu peuvent être arrêtés à l'aide sudo service the-service-name stop. Tuer des processus peut laisser des fichiers, des bases de données, etc.
corrompus

Réponses:


27

Dans ce cas, c'est assez simple, vous pouvez utiliser killallpour 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


Je n'étais pas au courant de l' --userargument, merci!
jmtd

4
Il convient de noter que, killallpar exemple, Solaris Unix tue tous les processus en cours d'exécution qu'il peut! Voir: en.wikipedia.org/wiki/Killall
donothings avec succès

Cela s'est essentiellement déconnecté sur ubuntu 18.
Manohar Reddy Poreddy

14

Ajouter une autre option car personne ne l'a mentionné, et je n'aime pas killall(l'utiliser sur Solaris peut provoquer un désastre).

pkill est plus portable

pkill -u username

Je ne trouve pas killalldans Ubuntu, mais pkillest déjà installé.
david.perez

2

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>


vous avez besoin de deux tirets avant l'utilisateur par exemple--user
jmtd

1

Installer slay:

installer aptitude slay

Puis 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

1
Btw awkpeut grep quelque chose lui-même. Pas besoin de le faire grep smth | awk, car vous pouvez utiliser juste à la awk '/smth/{...}'place.
rush

Voici une petite fonction pratique pour vous. killuser () { ps faux| awk -v user=$1 '$1==user{ system("kill -9 " $2) }' ;};
rcjohnson
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.