使用psutil获取正在执行的Python脚本的PID

4

操作系统:Jessie

Python版本:2.7

我想使用psutil终止当前正在执行的脚本。我的问题是,我想用ID杀死它,但我不知道如何获取我的脚本的pid

我知道可以使用进程名称终止进程,但我认为这不是一个很好的解决方案。

有人有什么想法吗?

我已经配置了Pi相机、GUI和一些传感器。我正在使用cv2库,问题是窗口无法关闭。因此,我搜索了如何关闭它们,但没有找到可用的解决方案。对我来说,杀死进程是可以接受的。

编辑:

import psutil

def on_terminate(proc):
    print("process {} terminated with exit code {}".format(proc, proc.returncode))

procs = psutil.Process().children()
for p in procs:
    p.terminate()
gone, still_alive = psutil.wait_procs(procs, timeout=3, callback=on_terminate)
for p in still_alive:
    p.kill()

我在文档中找到了这个片段。如何使它运行与 pid


你能给我你脚本的链接吗?这样解决你的问题会更容易。 - Kshitij Mittal
你想杀掉你自己的脚本吗?为什么不使用 sys.exit() 呢? - Jean-François Fabre
欢迎来到stackoverflow。请您提供一些关于您特定问题的代码,这将有助于其他成员更好地理解您的问题,并了解您所面临的上下文。这也能够证明您已经尝试过哪些方法。请查看以下链接:https://stackoverflow.com/help/mcve 和 https://stackoverflow.com/help/how-to-ask。 - Kenzo_Gilead
你是如何执行脚本的?例如,subprocess.Popen 对象具有 pid 属性。 - holdenweb
使用 python script.py 命令来运行脚本。我尝试使用 subprocess.Popen 但是没有成功。 - Tim
显示剩余2条评论
1个回答

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接