我正在使用QProcess對象列表來跟蹤某些需要按用戶定義的間隔啓動/停止的進程。QProcess變得不可用並且無法再次啓動
我可以啓動和停止進程確定。但問題出現時,我使用以下方法(僞代碼)停止一個進程:
process->start("PathToProcess","Some Arguments");
//Do some stuff.
process->terminate();
但是,如果我嘗試在其他時間重新開始的過程中,我得到的錯誤:
QProcess::start: Process is already running
我可以做一個ps -ef | grep processName,並發現它確實已經死了,但它正處於一個已經停止的狀態,我認爲這阻止了我再次啓動它。
我需要做些什麼來防止這種不存在的狀態,或者刪除已停用的方法,以便我可以在不重建的情況下再次啓動我的過程?
你是否檢查過'process-> processState!= NotRunning'?有時候孩子會在沒有適當退出的情況下死亡。 – mbx
終止後,爲了進行更多測試,我添加了一個終止後,儘管在操作系統中處於停止狀態,但該過程仍顯示爲「正在運行」。好決定。好像我可能需要自己做setProcessState。 –