linux – qtcreator发送的“停止”信号
发布时间:2020-12-14 01:11:19 所属栏目:Linux 来源:网络整理
导读:我在 linux上工作,当我用Qt creator IDE上的“停止”按钮关闭它时,我意识到我的应用程序正在留下守护进程.我想处理这些情况,因此应用程序关闭的方式与关闭主窗口时的方式相同.要编写处理程序,我需要知道它对应的信号. 解决方法 深入研究QtCreator的代码,我可
我在
linux上工作,当我用Qt creator IDE上的“停止”按钮关闭它时,我意识到我的应用程序正在留下守护进程.我想处理这些情况,因此应用程序关闭的方式与关闭主窗口时的方式相同.要编写处理程序,我需要知道它对应的信号.
解决方法
深入研究QtCreator的代码,我可以看到QtCreator在内部使用QProcess来启动你的应用程序.红色的“停止”按钮连接到ApplicationLauncher :: stop(),它会以两种方式之一终止您的进程,具体取决于它是GUI应用程序还是控制台应用程序,但在这两种情况下,结果最终都是相同的
Linux操作系统.
对于GUI应用程序,ApplicationLauncher调用QProcess :: terminate(),后者又向您的守护程序发送SIGTERM(在Linux上)信号.然后等待(使用waitForFinished())1秒钟,如果守护进程尚未退出,则调用QProcess :: kill(),发送SIGKILL. 对于控制台应用程序,ApplicationLauncher将终止委托给ConsoleProcess实用程序类.在Linux上,ConsoleProcess :: stop()将类似于ApplicationLauncher用于GUI应用程序,它首先发送SIGTERM,然后等待1秒,如果尚未终止则发送SIGKILL. 您可以在此处找到QtCreator的相关代码: > GUI app termination (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |