[英]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.