我有一個使用psutil運行一些各種twistd ...
命令的Python程序。 twistd
產生並守護進程並寫入foo.pid
,我可以從中讀取該pid。如何可靠地獲取扭曲衍生過程的pid?
它還會設置爲在進程終止時清除此pid文件,這意味着生成的進程可能完成得太快而無法讀取pid。
twistd
如果無法寫入pid文件,它會返回一個錯誤代碼,所以我可以假設沒有pid文件並且沒有扭曲的錯誤代碼意味着進程成功並且很快終止了,但是整個過程看起來很片斷。更不用說必須等待pid文件充滿內容,同時還要處理充滿的可能性,但又一次去除。
有沒有更好的方法?
我的「已選擇」解決方案只是我的最佳嘗試。例如,當命令行錯誤時,它不能在'twistd'的最奇怪的行爲之間分離,並且它返回的退出代碼爲零,程序結束速度非常快,這就是我問這個問題的原因。 – porgarmingduod 2012-07-29 08:59:47
對不起,我想我的觀點不夠清楚。你爲什麼要啓動守護進程的扭曲子進程,然後試圖學習它的PID?總體目標是什麼? – 2012-07-29 13:59:19
一般問題是啓動並監視幾個扭曲的服務,在必要時將其殺死,並報告內存和CPU使用情況等。 – porgarmingduod 2012-07-30 10:43:54