如何向我的 Quickly 应用程序添加守护进程?

如何向我的 Quickly 应用程序添加守护进程?

我正在构建一个应用程序迅速地,我想添加一个将在后台运行的守护进程。该怎么做?

答案1

据我所知,没有什么具体的快速阻止或帮助您运行守护进程,但我知道/猜测至少有两个选项你可以用 python 来做:

选项 1:Distutils

注意:我还没有尝试过这个:)

  1. 将您的守护进程脚本放入bin您的快速项目目录中,例如:bin/yourapp-launcher

  2. 在文件中添加以下内容data/yourapp-launcher.desktop

    [Desktop Entry]
    Name=Your App
    Exec=/bin/sh -c 'yourapp-launcher'
    Type=Application
    X-GNOME-Autostart-Delay=30
    Icon=yourapp
    Comment=
    NoDisplay=true
    
  3. 在 DistUtilsExtra 部分编辑setup.py并指定其他内容,例如:data_files

    DistUtilsExtra.auto.setup(
    name='hello-ubuntu',
    version='0.1',
    #license='GPL-3',
    #author='Your Name',
    #author_email='[email protected]',
    #description='UI for managing â¦',
    #long_description='Here a longer description',
    #url='https://launchpad.net/hello-ubuntu',
    cmdclass={'install': InstallAndUpdateDataDirectory},
    data_files=[('/etc/xdg/autostart', ['data/yourapp-launcher.desktop'])]
    )
    

当守护进程必须为所有用户运行时,这似乎是一种方法,例如类似于 U1 的工作方式。

选项 #2:硬编码

将所有内容硬编码到您的应用程序逻辑中,例如在第一次运行时初始化 ~/.config/autostart/yurapp-launcher.desktop,例如类似于GmailNotify 应用程序可以。

与 GmailNotify 应用程序不同,您可以依赖python-xdg访问 freedesktop.org 标准的库:

import xdg
print xdg.BaseDirectory.xdg_config_home

对于用户管理的守护进程来说似乎不错。

答案2

据我所知,没有模板可以快速添加守护进程。但是,您可以通过创建守护进程模板来做出贡献。如何创建自己的模板在以下问题的答案中进行了说明:如何快速创建新的应用程序模板

您还可以加入社区模板组在 Launchpad 上,让其他人可以使用您的模板。

编辑:还有Unity 镜头模板。它只能与 Ubuntu Unity 配合使用,因此您将依赖于平台(如果您问我,这是一个相当大的弱点)。但它似乎从一开始就准备好了 D-Bus。有点像守护进程,但可能不完全是。您可以使用它作为起点来创建独立于平台的守护进程,也许……

除了我可以从其他人那里链接的信息之外,我不知道任何其他细节,抱歉。我自己只是看看这个,以了解如何快速使用 Qt4。EDIT2:刚刚发现 Qt 有一个 D-Bus 组件,这将使您的守护进程独立于平台(在 Windows 和 Linux 等上运行)。这个讨论论坛 (http://www.qtcentre.org/threads/38453-Send-and-receive-a-signal-between-2-Qt-applications) 有一个如何使用它的示例(使用 C++,但仍然如此)。或者您可以谷歌搜索 QDBusConnection 和 QDBusMessage。

答案3

查看 Quickly 文档,似乎 Quickly 本身不支持创建守护进程。因此我建议Python 守护进程库。另外,请查看以下可以通过 Quickly 应用程序轻松交互的 Python 教程:

还,这个 Stack Overflow 问题解决 Python 守护进程的问题。

答案4

Python 3.3将会有一个daemon模块用于守护进程的管理。

相关内容