如何将守护进程添加到Quickly应用程序?

我正在快速构建一个应用程序,我想添加一个将在后台运行的守护进程。 你怎么做到这一点?

据我所知,没有什么特别的可以快速预防或帮助你运行守护进程,但我知道至少有两个选项/猜测你可以用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. 编辑setup.py并在DistUtilsExtra部分中指定其他data_files ,例如:

     DistUtilsExtra.auto.setup( name='hello-ubuntu', version='0.1', #license='GPL-3', #author='Your Name', #author_email='email@ubuntu.com', #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 App的操作方式。

与GmailNotify App不同,您可以放心使用python-xdg库来访问freedesktop.org标准:

 import xdg print xdg.BaseDirectory.xdg_config_home 

似乎适合用户管理的守护进程。

从我所看到的,没有模板可以快速添加守护进程。 但是,您可以通过创建守护程序模板来做出贡献。 如何创建自己的模板在这个问题的答案中解释: 如何创建新的快速应用程序模板

您还可以在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。

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

  • 编写Python守护进程
  • Python中的一个简单的unix / linux守护进程
  • 用Python方式创建一个守护进程

此外, 此Stack Overflow问题解决了Python守护程序。

Python 3.3将有一个守护进程模块来管理守护进程。