qtcreator发送的"停止"信号

UmN*_*obe 5 linux qt signals qt-creator

我在linux上工作,当我用Qt creator IDE上的"停止"按钮关闭它时,我意识到我的应用程序正在留下守护进程.我想处理这些情况,因此应用程序关闭的方式与关闭主窗口时的方式相同.要编写处理程序,我需要知道它对应的信号.

Fre*_*red 8

深入研究QtCreator的代码,我可以看到QtCreator在内部使用QProcess来启动你的应用程序.红色的"停止"按钮连接到ApplicationLauncher::stop(),它以两种方式之一终止您的过程,具体取决于它是GUI应用程序还是控制台应用程序,但在这两种情况下,结果在Linux上最终都是相同的.

对于GUI应用程序,ApplicationLauncher调用QProcess::terminate(),然后将SIGTERM(在Linux上)信号发送到您的守护程序.然后等待(with waitForFinished())1秒钟,如果守护进程在那时没有退出,它会调用QProcess::kill(),发送SIGKILL.

对于控制台应用程序,ApplicationLauncher将终止委托给ConsoleProcess实用程序类.在Linux上,ConsoleProcess::stop()将类似于ApplicationLauncherGUI应用程序,它首先发送SIGTERM,然后等待1秒,SIGKILL如果尚未终止则发送.

您可以在此处找到QtCreator的相关代码: