簡體   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