我有一个长时间运行的python脚本,我希望能够从另一个python脚本结束。理想情况下,我正在寻找的是某种方法来设置第一个脚本的进程ID,并能够通过第二个脚本的ID来查看它是否正在运行。另外,我希望能够终止这个长时间运行的进程。
有什么很酷的捷径可以实现这一点吗?
另外,我在Windows环境中工作。
我最近在这里找到了另一个答案:Check to see if python script is running
发布于 2010-06-16 23:42:16
您可以通过以下方式获取自己的PID (进程标识符)
import os
os.getpid()并在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发送给其他程序员,或者您可以在进程列表中搜索以找到其他脚本的名称,并使用上面的脚本终止它。
我希望这对你有帮助。
发布于 2015-06-24 09:42:25
你要找的是subprocess module。
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)python启动外部python脚本,相当于在控制台或终端中输入‘subprocess.Popen myPyScript.py’。
如果进程仍在运行,则来自subprocess.Popen.poll(extProc)的状态将为'None‘,如果该进程已在此脚本中关闭,则(对我而言)状态为1。如果已以其他方式关闭,则不确定状态。
https://stackoverflow.com/questions/3054740
复制相似问题