Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 以QProcess开始的流程不’;如果关闭主应用程序,则无法退出_C++_Linux_Qt - Fatal编程技术网

C++ 以QProcess开始的流程不’;如果关闭主应用程序,则无法退出

C++ 以QProcess开始的流程不’;如果关闭主应用程序,则无法退出,c++,linux,qt,C++,Linux,Qt,假设我在Linux的终端中启动一个进程,如果终端关闭,那么在终端中启动的子进程也会退出(即使进程是使用sudo启动的)。但是如果我在GUI应用程序中使用QProcess启动一个进程(比如说)p1,然后关闭GUI应用程序,进程p1仍然保持运行,就像它是一个守护进程一样,即使我没有使用QProcess::startDetached()启动进程 及 在closeEvent中。尝试添加 delete process1; 在GUI类析构函数中。如何初始化QProcess?当我在mainwindow.cp

假设我在Linux的终端中启动一个进程,如果终端关闭,那么在终端中启动的子进程也会退出(即使进程是使用sudo启动的)。但是如果我在
GUI
应用程序中使用
QProcess
启动一个进程(比如说)
p1
,然后关闭
GUI
应用程序,进程
p1
仍然保持运行,就像它是一个守护进程一样,即使我没有使用
QProcess::startDetached()
启动进程

在closeEvent中。

尝试添加

delete process1;

在GUI类析构函数中。

如何初始化QProcess?当我在
mainwindow.cpp中(在Windows上)执行以下操作时,我的子进程在我关闭主应用程序时关闭

QProcess* proc = new QProcess(this);
proc->start("notepad.exe q:/blah2.txt");

通过使MainWindow成为QProcess的父进程,MainWindow将在其QObject析构函数期间销毁并关闭它。

我这样做了,但没有用!也许我们不能向我们不拥有的进程发送信号!gksudo使根拥有自己的进程@阿德南:是的,你们不能终止或终止你们不拥有的进程(除非你们是root用户)。您可以通过尝试从控制台终止进程来测试它-您将失败,因为您没有足够的权限。然后,运行Linux的人将不得不确认您的问题。我在Windows和文档中看到的一切都表明,在构造函数中设置父级就是这样做的。你解决问题了吗?你能分享解决方案吗?
delete process1;
QProcess* proc = new QProcess(this);
proc->start("notepad.exe q:/blah2.txt");