0

Linux のターミナルでプロセスを開始するとします。ターミナルを閉じると、ターミナルで開始された子プロセスも終了します (プロセスが sudo を使用して開始された場合でも)。しかし、アプリケーション内で(たとえば)p1を使用してプロセスを開始し、アプリケーションを閉じると、プロセスを開始しなくても、プロセスはデーモンのように実行され続けます。QProcessGUIguip1QProcess::startDetached()

process1->start("gksudo",args);

process1->terminate();
process1->close();

closeEvent で。

4

2 に答える 2

0

QProcessをどのように初期化していますか?子プロセスで次のことを(Windowsで)行ったmainwindow.cppとき、メインアプリケーションを閉じたときに閉じました。

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

MainWindowをQProcessの親にすることにより、MainWindowはQObjectデストラクタ中にMainWindowを破棄して閉じます。

于 2012-11-14T17:03:38.760 に答える
0

追加してみる

delete process1;

GUI クラスのデストラクタで。

于 2012-11-14T09:25:25.073 に答える