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

问题描述 投票:0回答:1

如何使用subprocess终止启动时启动的程序?我碰到了this question,找到了[[wordsforthewise's答案并尝试了一下,但没有任何反应。

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)
我有一个由Cronjob在启动时运行的程序/home/pi/Desktop/startUpPrograms/facedetection.py,我想从这样的flask应用程序路由中杀死它。 

将程序名称分配给extProc = program_name是否可行?如果是,如何分配?

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

python flask subprocess kill terminate
1个回答
1
投票
由于您说程序是由cronjob运行的,所以您将无法使用Python处理该程序的PID。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.