Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从另一个python脚本终止python脚本_Python_Process_Terminate - Fatal编程技术网

从另一个python脚本终止python脚本

从另一个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

我有一个长期运行的python脚本,我希望能够从另一个python脚本结束。理想情况下,我要寻找的是某种方法,将进程ID设置为第一个脚本,并通过第二个脚本的ID查看它是否正在运行。此外,我希望能够终止长时间运行的进程

有什么很酷的捷径可以实现这一点吗

另外,我在Windows环境中工作


我最近在这里找到了另一个答案:

您可以通过

以及在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)