Як додати демона до своєї програми швидкого використання?


10

Я швидко будую додаток , і я хотів додати демон, який буде працювати у фоновому режимі. Як це зробити?


Слід поглянути на D-Bus.
ADcomp

Надайте посилання на швидку домашню сторінку. З таким іменем не можна його гугл.
dotancohen

Що цей дімон повинен робити? Чи потрібно це публічно або лише для вашої заявки?
Тімо

@dotancohen Готово. Хоча я б припустив, що імпортний біт полягає в тому, що він знаходиться в Python.
8128

@Timo Я не можу говорити за Vigesh, але для моєї щедрості я дивлюсь на щось саме для своєї заявки
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 App .

На відміну від GmailNotify App, ви можете полегшити в бібліотеці python-xdg доступ до стандартів freedesktop.org:

import xdg
print xdg.BaseDirectory.xdg_config_home

Дуже добре для демонів, керованих користувачем.


1

Як я бачу, немає шаблону, щоб швидко додати демон. Однак ви можете зробити свій внесок, створивши шаблон демона. Як створити власний шаблон, пояснено у відповіді на це запитання: Як створити новий швидкий шаблон програми

Ви також можете приєднатися до групи шаблонів спільнот на Launchpad, щоб зробити свій шаблон доступним для інших.

EDIT: Існує також шаблон об'єктива Unity . Він буде працювати тільки з Ubuntu Unity, тому ви будете залежати від платформи (досить значна слабкість, якщо ви запитаєте мене). Але, здається, у D-Bus речі готові з самого початку. Якийсь демон, але, можливо, не зовсім. Ви можете використовувати це як вихідну точку для створення демона, незалежного від платформи, можливо ...

Я не знаю жодної деталі, окрім того, що я можу зв’язати з іншими, вибачте. Просто дивлячись на це, щоб дізнатися, як швидко використовувати Qt4. EDIT2: Щойно встановлено, що в Qt є компонент D-Bus, який зробить вашу платформу демонів незалежною (працює в Windows та Linux тощо). На цьому дискусійному форумі ( http://www.qtcentre.org/threads/38453-Send-and-receive-a-signal-bet between-2-Qt- applications ) є приклад (як на C ++, але все ж) використання це. Або ви можете google для QDBusConnection та QDBusMessage.


0

Переглядаючи документи Quickly, здається, що Quickly не підтримує створення створених демонів. Тому я пропоную бібліотеку демонів Python . Крім того, перейдіть до наступних навчальних посібників Python, які можна легко поєднати з додатком Quick:

Також це запитання щодо переповнення стека стосується демонів Python.


Я пройшов багато посилань, але я шукаю рекомендований спосіб підключити мій додаток GUI та демон, який буде працювати паралельно. Демон повинен бути упакований з тим же додатком і його слід запустити під час завантаження.
Виньєш

Знову ж таки, Швидко це не підтримує. Вам доведеться перенести додаток з програми "Швидкий" на "справжній" Python. Ось чому я наводив приклади посилань.
dotancohen

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.