Как добавить демон в мое приложение Quickly?

10

Я быстро создаю приложение и хотел добавить демона, который будет работать в фоновом режиме. Как ты это делаешь?

Вигнеш
источник
Вы должны взглянуть на D-Bus.
ADcomp
Пожалуйста, предоставьте ссылку на домашнюю страницу. С таким именем нельзя гуглить.
dotancohen
Что должен делать этот Деймон? Это должно быть публично или просто для вашего приложения?
Тимо
@dotancohen Готово. Хотя я бы посоветовал добавить, что это импорт в Python.
8128
@ Тимо Я не могу говорить за Вигеша, но за свою награду я ищу что-то только для своего заявления
8128

Ответы:

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. отредактируйте setup.pyи укажите дополнительные data_filesв разделе DistUtilsExtra, например:

    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 .

В отличие от приложения GmailNotify вы можете использовать библиотеку python-xdg для доступа к стандартам freedesktop.org:

import xdg
print xdg.BaseDirectory.xdg_config_home

Кажется, хорошо для управляемых пользователем демонов.

Wik
источник
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.

GaRyu
источник
0

Просматривая документы Quickly, кажется, что Quickly изначально не поддерживает создание демонов. Поэтому я предлагаю Python Daemon Library . Кроме того, просмотрите следующие учебные пособия по Python, которые могут быть легко связаны с приложением Quickly:

Кроме того, этот вопрос переполнения стека адресован демонам Python.

dotancohen
источник
Я просмотрел многие ссылки, но я ищу рекомендуемый способ соединения моего приложения с быстрым графическим интерфейсом и демона, который будет работать параллельно. Демон должен быть упакован с тем же приложением и должен запускаться при загрузке.
Виньеш
Опять же, Quickly не поддерживает это. Вам нужно будет завершить приложение от Quickly до «реального» Python. Вот почему я привел пример ссылки.
dotancohen
0

Python 3.3 будет иметь модуль демона для управления демонами.

Рамчандра Апте
источник