我怎样才能杀死后台 python 进程?
How can i kill background python processes?
我想要 python 语法,它会通过 python 本身为我提供后台进程列表 运行,并一次终止所有这些进程。我应该在下面的代码中做些什么修改?
我已经编写了这段代码来获取所有 运行 进程并根据其名称终止特定进程。
import psutil
for proc in psutil.process_iter():
try:
# Get process name & pid from process object.
processName = proc.name()
processID = proc.pid
print(processName , ' ::: ', processID)
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
pass
for proc in psutil.process_iter():
if proc.name() == "powershell.exe":
proc.kill()
您应该能够使用完全相同的方法终止 python 个进程。当然:小心! 如果我在我的机器上这样做,我会杀死一些为我做重要工作的进程:)
了解如何调用您的 python 解释器。我假设它是 'python3.exe' 或 'python.exe'。在我的机器上它是 'python3'。
请注意您的 python 脚本不会自行终止。为此,您可以检查杀手脚本的 pid 是什么。以下示例对我有用。出于显而易见的原因,我已将 proc.kill()
语句替换为 print
。
import psutil
import os
my_pid = os.getpid()
for proc in psutil.process_iter():
try:
# Get process name & pid from process object.
processName = proc.name()
processID = proc.pid
if proc.pid == my_pid:
print("I am not suicidal")
continue
if processName.startswith("python3"): # adapt this line to your needs
print(f"I will kill {processName}[{processID}] : {''.join(proc.cmdline())})")
# proc.kill()
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess) as e:
print(e)
输出:
I will kill python3[11205] : python3-cimport time; time.sleep(1000))
I am not suicidal
I will kill python3[15745] : <another python job running on my machine>
刚才time.sleep
的Python进程是我为了测试提前启动的
我想要 python 语法,它会通过 python 本身为我提供后台进程列表 运行,并一次终止所有这些进程。我应该在下面的代码中做些什么修改?
我已经编写了这段代码来获取所有 运行 进程并根据其名称终止特定进程。
import psutil
for proc in psutil.process_iter():
try:
# Get process name & pid from process object.
processName = proc.name()
processID = proc.pid
print(processName , ' ::: ', processID)
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
pass
for proc in psutil.process_iter():
if proc.name() == "powershell.exe":
proc.kill()
您应该能够使用完全相同的方法终止 python 个进程。当然:小心! 如果我在我的机器上这样做,我会杀死一些为我做重要工作的进程:)
了解如何调用您的 python 解释器。我假设它是 'python3.exe' 或 'python.exe'。在我的机器上它是 'python3'。
请注意您的 python 脚本不会自行终止。为此,您可以检查杀手脚本的 pid 是什么。以下示例对我有用。出于显而易见的原因,我已将 proc.kill()
语句替换为 print
。
import psutil
import os
my_pid = os.getpid()
for proc in psutil.process_iter():
try:
# Get process name & pid from process object.
processName = proc.name()
processID = proc.pid
if proc.pid == my_pid:
print("I am not suicidal")
continue
if processName.startswith("python3"): # adapt this line to your needs
print(f"I will kill {processName}[{processID}] : {''.join(proc.cmdline())})")
# proc.kill()
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess) as e:
print(e)
输出:
I will kill python3[11205] : python3-cimport time; time.sleep(1000))
I am not suicidal
I will kill python3[15745] : <another python job running on my machine>
刚才time.sleep
的Python进程是我为了测试提前启动的