从另一个python脚本终止python脚本
我有一个长期运行的python脚本,我希望能够从另一个python脚本结束。理想情况下,我要寻找的是某种方法,将进程ID设置为第一个脚本,并通过第二个脚本的ID查看它是否正在运行。此外,我希望能够终止长时间运行的进程 有什么很酷的捷径可以实现这一点吗 另外,我在Windows环境中工作从另一个python脚本终止python脚本,python,process,terminate,Python,Process,Terminate,我有一个长期运行的python脚本,我希望能够从另一个python脚本结束。理想情况下,我要寻找的是某种方法,将进程ID设置为第一个脚本,并通过第二个脚本的ID查看它是否正在运行。此外,我希望能够终止长时间运行的进程 有什么很酷的捷径可以实现这一点吗 另外,我在Windows环境中工作 我最近在这里找到了另一个答案:您可以通过 以及在Unix中终止进程 import os, signal os.kill(5383, signal.SIGKILL) 在Windows使用中杀死 import su
我最近在这里找到了另一个答案:您可以通过 以及在Unix中终止进程
import os, signal
os.kill(5383, signal.SIGKILL)
在Windows使用中杀死
import subprocess as s
def killProcess(pid):
s.Popen('taskkill /F /PID {0}'.format(pid), shell=True)
您可以将PID发送到其他程序,也可以在进程列表中搜索以查找其他脚本的名称,并使用上述脚本终止它
我希望这对您有所帮助。您正在寻找合适的人选
Popen启动外部python脚本,相当于在控制台或终端中键入“python myPyScript.py”
如果进程仍在运行,subprocess.Popen.poll(extProc)的状态将为“无”;如果已从此脚本中关闭,则(对于我)状态将为1。不确定以其他方式关闭时的状态。os.kill是仅限Unix的操作。可以模拟os.kill:
import subprocess as s
def killProcess(pid):
s.Popen('taskkill /F /PID {0}'.format(pid), shell=True)
import subprocess as sp
extProc = sp.Popen(['python','myPyScript.py']) # runs myPyScript.py
status = sp.Popen.poll(extProc) # status should be 'None'
sp.Popen.terminate(extProc) # closes the process
status = sp.Popen.poll(extProc) # status should now be something other than 'None' ('1' in my testing)