我正在使用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。 –