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 d'utilisateur name1
par exemple! Qu'est-ce qu'une commande pour faire cela dans Ubuntu?
ubuntu
command-line
process
user15992
la source
la source
sudo service the-service-name stop
. Tuer des processus peut laisser des fichiers, des bases de données, etc.Réponses:
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
la source
--user
argument, merci!killall
par exemple, Solaris Unix tue tous les processus en cours d'exécution qu'il peut! Voir: en.wikipedia.org/wiki/KillallAjouter 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 portablela source
killall
dans Ubuntu, maispkill
est déjà installé.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>
la source
--user
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:
(attends un peu)
la source
awk
peut grep quelque chose lui-même. Pas besoin de le fairegrep smth | awk
, car vous pouvez utiliser juste à laawk '/smth/{...}'
place.killuser () { ps faux| awk -v user=$1 '$1==user{ system("kill -9 " $2) }' ;};