QProcess和shell:进程仍在运行时被销毁

use*_*861 5 shell qt sh qprocess qt-creator

我想用Qt启动一个shell脚本.

QProcess process;
process.start(commandLine, QStringList() << confFile);
process.waitForFinished();

if(process.exitCode()!=0)
{
    qDebug () << " Error " << process.exitCode() << process.readAllStrandardError();
}
else
{
    qDebug () << " Ok " << process.readAllStrandardOutput() << process.readAllStrandardError();
}
Run Code Online (Sandbox Code Playgroud)

结果是:

好的:结果...."""QProcess:当进程仍在运行时被销毁.

此消息不会每次都出现.

问题是什么?

sas*_*alm 13

process.waitForFinished();正在达到默认的30秒超时.请process.waitForFinished(-1);改用.这将确保您等待该过程完成所需的时间,而不会超时.