我是一位有用的助手,可以为您翻译文本。
我正在使用一个QProcess对象列表来跟踪需要在用户定义的时间间隔内启动/停止的一些进程。我能够成功启动和停止这些进程。但是当我使用以下方法停止进程时(伪代码)问题就出现了:
然而,如果我在另一个时间尝试重新启动该进程,就会出现以下错误:
我可以运行 ps -ef | grep 进程名称 命令,发现该进程确实已经死亡了,但是它处于僵尸状态,我认为这正阻止我再次启动它。
我需要做什么才能防止进程进入僵尸状态,或删除僵尸方法,以便我可以重新启动进程而不需要重建?
我正在使用一个QProcess对象列表来跟踪需要在用户定义的时间间隔内启动/停止的一些进程。我能够成功启动和停止这些进程。但是当我使用以下方法停止进程时(伪代码)问题就出现了:
process->start("PathToProcess","Some Arguments");
//Do some stuff.
process->terminate();
然而,如果我在另一个时间尝试重新启动该进程,就会出现以下错误:
QProcess::start: Process is already running
我可以运行 ps -ef | grep 进程名称 命令,发现该进程确实已经死亡了,但是它处于僵尸状态,我认为这正阻止我再次启动它。
我需要做什么才能防止进程进入僵尸状态,或删除僵尸方法,以便我可以重新启动进程而不需要重建?
process->processState != NotRunning
吗?有时子进程会在没有正确退出的情况下死亡/崩溃。 - mbx