gpt4 book ai didi

qt - 在启动时作为 Linux 守护进程运行 Qt 应用程序

转载 作者:行者123 更新时间:2023-12-04 15:28:22 29 4
gpt4 key购买 nike

我开发了一个 Qt 应用程序,其中包含一个 TCP 服务器等。我现在正在尝试制作 Ubuntu 软件包并让应用程序在启动时自动启动。

即使没有人登录,应用程序也需要运行,这意味着守护进程通过/etc/init.d/中的脚本启动

我尝试在 init.d 脚本中简单地在启动时运行应用程序并在停止时发送终止信号,但这意味着应用程序在前台运行并阻止 init 脚本。

Forking like in an other question几乎似乎可以工作,尝试启动 TCP 服务器后出现“未知错误”。尽管如此,应该有一种简单的方法来编写一个 init 脚本,在各种 Linux 发行版上启动时在后台运行我的应用程序。

有人能指出我正确的方向吗?

使用 Ubuntu 9.10 和 Qt 4.5

最佳答案

最好的方法可能是使用 QtService在那里为您处理 fork 工作。

但是,如果您想继续构建自己的应用程序,您应该将应用程序置于后台或通过 start-stop-daemon 运行它。附带 OpenRC或用于您的发行版的类似实用程序。

另外,请确保您只链接到 QtCore 共享库。尽管应用程序可能是命令行并且从不拉出 GUI,但这并不意味着 X 不是应用程序运行所必需的。例如,一组单元测试:

$ ldd runTests  | grep Qt
libQtTest.so.4 => /usr/lib/qt4/libQtTest.so.4 (0x00007fd424de9000)
libQtXml.so.4 => /usr/lib/qt4/libQtXml.so.4 (0x00007fd424baa000)
libQtGui.so.4 => /usr/lib/qt4/libQtGui.so.4 (0x00007fd4240db000)
libQtCore.so.4 => /usr/lib/qt4/libQtCore.so.4 (0x00007fd422644000)

由于 QtGui 存在,所有 X 库也被引入,尽管从上面的输出中过滤掉了。

关于qt - 在启动时作为 Linux 守护进程运行 Qt 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1084140/

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