Kill all processes for a given user

Is there a reliable way to kill all the processes of a given user? kill(-1, SIGKILL) as that user will work, unless a rogue process of that user kills the killing process first. The best I can find so far is to loop through system("ps -u") for that user and kill the processes that way, but that seems really hacky and inefficient.

EDIT: To clarify, I'm specifically asking for a POSIX-compatable solution. For some reason I thought tagging the question posix would put that in the title.

2

5 Answers

Just (temporarily) killed my Macbook with

killall -u pu -m . 

where pu is my userid. Watch the dot at the end of the command.

Also try

pkill -u pu 

or

ps -o pid -u pu | xargs kill -1 
5

Here is a one liner that does this, just replace username with the username you want to kill things for. Don't even think on putting root there!

pkill -9 -u `id -u username` 

Note: if you want to be nice remove -9, but it will not kill all kinds of processes.

1

On Debian LINUX, I use: ps -o pid= -u username | xargs sudo kill -9.

With -o pid= the ps header is supressed, and the output is only the pid list. As far as I know, Debian shell is POSIX compliant.

The following kills all the processes created by this user:

kill -9 -1 
1

What about iterating on the /proc virtual file system ? ?

3

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like