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?

user15992
la source
doublon possible de Comment puis-je tuer tous les processus d'un utilisateur en utilisant son UID
Gilles 'SO- arrête d'être méchant'
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

njsg
la source
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
Patrick
la source
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>

SuperBOB
la source
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
jmtd
la source
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