Qt中的linux系统守护进程

Posted

技术标签:

【中文标题】Qt中的linux系统守护进程【英文标题】:linux system daemon in Qt 【发布时间】:2013-02-20 13:21:34 【问题描述】:

我需要编写一些特定于 linux 的系统守护进程(它将以 root 权限运行)。

我有一种刻板印象,认为 Qt 是关于 GUI 应用程序的,所以依赖于 Qt 的守护程序对我来说看起来很奇怪。

另一方面,Qt 为 DBUS/threads/settings/... 提供了不错的 C++ 绑定——我的守护进程所需的一切。

现在我很感兴趣,用Qt写非GUI系统工具/守护进程可以吗?是否有此类工具的示例?

【问题讨论】:

【参考方案1】:

可以用 Qt 编写非 GUI 系统工具/守护进程吗?

是的,这很好。

有用于非 UI 应用程序的 QCoreApplication 类。

特定于守护进程,您可能需要查看Daemonizing a Qt-application。

【讨论】:

此链接已损坏。目前有一些信息在这里forum.qt.io/topic/39150/…【参考方案2】:

自 Qt4 以来,Qt 库已拆分为多个模块。

您甚至可以在没有安装 Qt Gui 或任何其他图形工具的情况下使用 Qt Core。

我能想到几个仅使用 Qt 的命令行示例(例如 qdbus

【讨论】:

【参考方案3】:

首先,QT 不仅仅是关于 GUI。是一个完整的跨平台开发框架。

您肯定可以使用 QT 创建一个守护进程。但是,您想用它解决什么目的?您是否也想为 windows 平台提供类似的 windows 服务?

如果你真的不希望你的代码是跨平台的,你可以简单地使用 C++。如果您正在寻找易于编码的问题,那么 qt 也是一个不错的选择。

【讨论】:

以上是关于Qt中的linux系统守护进程的主要内容,如果未能解决你的问题,请参考以下文章

Linux编程之《守护进程》

Linux守护进程

Daemon——守护进程

linux中的守护进程

Linux中的进程 --fork,exec,守护进程分析

操作系统中的精灵——“守护进程”