36

How to kill all process of one user?

When I make ps aux I obtain a list of process with several users, and I want to kill all process of user name1, for example. What's a command to do that in Ubuntu?

1
  • 1
    If the users are real persons this probably isn't a good idea. I also think you want to kill processes to save time. This is a very bad idea. For instance, the services in Ubuntu can be stopped using sudo service the-service-name stop. Killing processes may left corrupted files, databases, etc.
    – tiktak
    Mar 28, 2012 at 15:39

5 Answers 5

36

In this case, it's pretty simple, you can use killall to kill, or send any other signal, to a bunch of processes at once. One of the "filtering" options is the owner: killall --user name1

3
26

Adding another option because nobody has mentioned it, and I don't like killall (using it on solaris can cause disaster).

pkill is more portable

pkill -u username
2
  • I don't find killall in Ubuntu, but pkill is already installed. Nov 29, 2017 at 10:19
  • Didn't see killall on a CentOS machine, but I've always seen pkill on the machines I've used. This is probably the more portable answer. Jul 26, 2021 at 23:07
1

Install slay:

aptitude install slay

Then issue slay some-user.

Be aware that if you kill off stuff for users you don't know the purpose for, you may render your machine unusable (until you restart).

If you really don't want to install slay:

ps -e -o user,pid | grep '^some-user ' | awk '{ print $2 }' | xargs kill

(wait a bit)

ps -e -o user,pid | grep '^some-user ' | awk '{ print $2 }' | xargs kill -9
2
  • 1
    Btw awk can grep something itself. No need to do grep smth | awk, cause you can use just awk '/smth/{...}' instead.
    – rush
    Mar 27, 2012 at 14:36
  • Here is a handy little function for you. killuser () { ps faux| awk -v user=$1 '$1==user{ system("kill -9 " $2) }' ;};
    – rcjohnson
    Mar 28, 2017 at 16:20
1

Identify the user, then killall -user <username>

They will have a bash (or similar) process associated with their login session killing that will kill their session.

To get a potentially better overview of what a user is doing - try pstree <username>

1
  • you need two dashes before user e.g. --user
    – jmtd
    Mar 28, 2012 at 10:40
1

According to man kill:

kill -9 -1
    Kill all processes you can kill.

To apply it to a different user:

su -l username kill -9 -1
0

Not the answer you're looking for? Browse other questions tagged .