首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从一个python脚本终止另一个python脚本

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

Stack Overflow用户
提问于 2010-06-16 23:29:21
回答 2查看 16.5K关注 0票数 10

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

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

另外,我在Windows环境中工作。

我最近在这里找到了另一个答案:Check to see if python script is running

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-16 23:42:16

您可以通过以下方式获取自己的PID (进程标识符)

代码语言:javascript
复制
import os
os.getpid()

并在Unix中终止进程

代码语言:javascript
复制
import os, signal
os.kill(5383, signal.SIGKILL)

在Windows中终止使用

代码语言:javascript
复制
import subprocess as s
def killProcess(pid):
    s.Popen('taskkill /F /PID {0}'.format(pid), shell=True)

您可以将PID发送给其他程序员,或者您可以在进程列表中搜索以找到其他脚本的名称,并使用上面的脚本终止它。

我希望这对你有帮助。

票数 8
EN

Stack Overflow用户

发布于 2015-06-24 09:42:25

你要找的是subprocess module

代码语言:javascript
复制
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。如果已以其他方式关闭,则不确定状态。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3054740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档