1
我試圖用exec命令是這樣來執行使用PHP Python腳本的過程中不會死:Python腳本是從內部殺死,但
exec("python /address/to/script.py");
我不需要腳本運行到完成,所以在它做了我所需要的之後,我從其中調用sys.exit()
。執行被傳遞迴php腳本,這很好,但是python進程仍在運行。我可以在我的服務器進程列表中看到它。是否還有更多需要完全殺死它?
附加信息
的Python腳本編寫第三方。
我對python知之甚少,剛夠添加
sys.exit()
調用。
不,&不存在。我需要同步執行它。有沒有辦法在腳本中確定我是否在子進程中?我知道如何打印輸出。無論如何,os._exit()聽起來應該沒問題。至於清理,你只是指程序特定的東西?如果我每次都強行重複殺死腳本,服務器狀態應該不受影響,對吧? – DaiBu
有一些技術來檢查子進程是否正在運行[here](http://stackoverflow.com/questions/23442651/check-if-the-main-thread-is-still-alive-from-another-thread)你可以試試。清理將是程序特定的東西,沖洗緩衝區等,儘管它不應該影響服務器狀態。這與通過終端中的'kill'命令終止進程沒有什麼不同。 –
嗯,我嘗試使用'os._exit()',它似乎在他們的腳本中觸發異常處理。仍然不死,只是輸出一個消息到終端。但是我在主文件(文件「sys.exit()」)中找到了'search_thread = Thread()'和'search_thread.start()'調用來運行搜索循環,所以它可能是子線程)。有沒有簡單的方法向父母發送通知並在那裏殺死它? – DaiBu