假设我在Linux中启动终端进程,如果终端关闭,终端启动的子进程也会退出(即使进程是使用sudo启动的)。但是,如果我在p1
应用程序中使用QProcess
启动进程(例如)GUI
,然后关闭gui
应用程序,则进程p1
仍会继续运行,好像它是一个守护进程,即使我没有使用QProcess::startDetached()
启动进程。
process1->start("gksudo",args);
和
process1->terminate();
process1->close();
在closeEvent中。
答案 0 :(得分:0)
尝试添加
delete process1;
在GUI类析构函数中。
答案 1 :(得分:0)
您是如何初始化QProcess的?当我在mainwindow.cpp
中执行以下操作(在Windows上)时,当我关闭主应用程序时,我的子进程已关闭。
QProcess* proc = new QProcess(this);
proc->start("notepad.exe q:/blah2.txt");
通过使MainWindow成为QProcess的父级,MainWindow将在其QObject析构函数中销毁并关闭它。