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

Terminate a python program running from another program

如何使用subprocess终止开机启动的程序? 我 运行 跨越 this question 并找到 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 运行 在启动时由 Cronjob 启动,我想从这样的烧瓶应用程序路径中杀死它。

将程序名称分配给 extProc = program_name 可以吗?如果有怎么分配?

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

既然你说这个程序是 运行 的 cronjob,你将无法在 Python.

中处理程序的 PID

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

import os

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