Question

Getting the following output from running this:

ps aux | grep Python

Output:

user_name  84487   0.0  0.0        0      0   ??  Z    12:15PM   0:00.00 (Python)
user_name  84535   0.0  0.0        0      0   ??  Z    12:16PM   0:00.00 (Python)

I want to terminate all Python processes currently running on a machine....

Was it helpful?

Solution

use pkill, with the -f option.

pkill -f python

If you don't have pkill pre-installed (some osx's don't...), try proctools.

OTHER TIPS

If you don't have pkill, you can try this:

ps aux | grep python | grep -v grep | awk '{print $2}'

If that gives you the PIDs you want to kill, join that up with the kill command like this

kill $(ps aux | grep python | grep -v grep | awk '{print $2}')

That says... kill all the PIDs that result from the command in parentheses.

killall python

Will do the trick.

@shx2: Thanks for the trick! Here are the steps to make it work:

Step1:

cd /usr/bin

Step2:

touch "pkill"

Step3: With textEditor of your choice open the file you just created: /usr/bin/pkill (do it with sudo or be Admin). Copy/paste this and save:

for X in `ps acx | grep -i $1 | awk {'print $1'}`; do
  kill $X;
done

Step3: Set file attribute

sudo chmod 755 /usr/bin/pkill

Now you ready to terminate any process using a simple syntax:

For example, to terminate all Python processes open a shell and type:

pkill Python

All python processes should be gone by now.

Actually, some of the answers will quietly fail, not killing the processes. Namely, in case-sensitive environments (like Mac, Unix, etc) you should take care of process name -> "Python" instead of "python" and in addition, you might need "sudo".

So, here are the options: sudo killall Python or sudo pkill -f Python

pgrep python | xargs sudo kill -9
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top