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