-
-
Save marcoagner/9926309 to your computer and use it in GitHub Desktop.
import os, signal | |
def check_kill_process(pstring): | |
for line in os.popen("ps ax | grep " + pstring + " | grep -v grep"): | |
fields = line.split() | |
pid = fields[0] | |
os.kill(int(pid), signal.SIGKILL) |
I feel using psutil is better.
'psutil' is not always 'util' for interactive processes called by bash scripts, for example. The above script takes this into consideration, killing them, but not mistakenly killing a random '/bin/bash', for example..
or you could just import the subprocess module, have the user enter a string based input, convert it to int, then via the sys module [ sys.stdin.readline()] or raw_input depending on the version of python, then create a variable to store the input with the 'killall' command, through the subprocess.call() function
Where do you list the name of the process you want to kill?!?!?! OMG....I've been searching for an hour!!!!
You can use psutil's process_iter()
to list processes, and use each process's name()
and cmdline()
method to get its name and command line arguments.
For example, this gist implements a few functions that list processes by name or by filtering on their command line arguments.
@marcoagner Perfect solution for my selenium issue with driver.quit()
not terminating chromedriver.
macOS: Catalina
Python: 3.7.4
ChromeDriver: 80.0.3987.106
def check_kill_process(pstring):
"""
find process by name and kill it
:param pstring: name of the process you want to find and kill
"""
out = commands.getoutput("ps ax | grep " + pstring + " | grep -v grep").split("\n")
for line in out:
fields = line.split()
pid = fields[0]
os.kill(int(pid), signal.SIGKILL)