繁体   English   中英

终止从另一个程序运行的 python 程序

[英]Terminate a python program running from another program

如何使用subprocess终止启动时启动的程序? 我遇到了这个问题,找到了wordsforthewise的答案并尝试了它,但没有任何反应。

Wordsforthewise 的答案:

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)

我有一个程序/home/pi/Desktop/startUpPrograms/facedetection.py在启动时由/home/pi/Desktop/startUpPrograms/facedetection.py运行,我想从这样的烧瓶应用程序路径中杀死它。

将程序名称分配给extProc = program_name会起作用吗? 如果是,如何分配?

@app.route("/killFD", methods=['GET', 'POST'])
def killFaceDetector():
    #kill code goes here.

由于您说该程序由 cronjob 运行,因此您将无法在 Python 中处理该程序的 PID。

您必须遍历所有进程以找到要杀死的进程……或者更简洁地说,只需使用pkill实用程序,并带有-f标志以查看完整的命令行。 以下内容将facedetection.py命令行中包含facedetection.py所有进程(如果您的用户有权这样做)。

import os

os.system('pkill -f facedetection.py')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM