如何将守护程序添加到“快速”应用程序中?


10

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


您应该看看D-Bus。
ADcomp 2012年

请提供指向快速主页的链接。这样的名字不能用谷歌搜索。
dotancohen 2012年

这个恶魔应该怎么办?是否需要公开或仅针对您的应用?
2012年

@dotancohen完成。尽管我建议导入位是在Python中。
8128年

@Timo我不能代表Vigesh,但是为了我的赏金,我正在寻找一些仅适合我的应用程序的东西
8128年

Answers:


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@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应用程序不同,您可以依赖python-xdg库来访问freedesktop.org标准:

import xdg
print xdg.BaseDirectory.xdg_config_home

似乎对用户管理的守护程序很有用。


1

从我看到的内容来看,没有模板可以快速添加守护程序。但是,您可以通过创建守护程序模板来做出贡献。该问题的答案中说明了如何创建自己的模板:如何快速创建新的应用程序模板

您还可以加入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 ++中,但仍然)它。或者,您可以在Google上查询QDBusConnection和QDBusMessage。


0

查看Quickly文档,似乎Quickly本机不支持创建守护程序。因此,我建议使用Python Daemon库。另外,仔细阅读以下Python教程,这些教程可以从Quickly应用程序轻松地进行接口:

另外,这个堆栈溢出问题也解决了Python守护程序。


我已经浏览了许多链接,但是我正在寻找一种推荐的方法来连接我的快速GUI应用程序和将并行运行的守护程序。该守护程序必须与同一应用程序打包在一起,并应在启动时启动。
Vignesh

同样,快速不支持此功能。您必须将应用程序从Quickly升级到“真实” Python。这就是为什么我提供了示例链接。
dotancohen 2012年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.