gpt4 book ai didi

linux - qtcreator 在 "stop"发送的信号

转载 作者:IT王子 更新时间:2023-10-29 01:14:00 25 4
gpt4 key购买 nike

我在 Linux 上工作,当我使用 Qt Creator IDE 上的“停止”按钮关闭我的应用程序时,我意识到我的应用程序正在留下守护进程。我想处理这些情况,以便应用程序以与关闭主窗口时相同的方式关闭。要编写处理程序,我需要知道它对应于哪些信号。

最佳答案

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

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

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

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

关于linux - qtcreator 在 "stop"发送的信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14137808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com