Я швидко будую додаток , і я хотів додати демон, який буде працювати у фоновому режимі. Як це зробити?
Я швидко будую додаток , і я хотів додати демон, який буде працювати у фоновому режимі. Як це зробити?
Відповіді:
Наскільки я знаю, немає нічого конкретного в тому, щоб швидко запобігти або допомогти вам із запуском демонів, але я знаю, принаймні, два варіанти, які я знаю / здогадуюсь, що ви можете зробити це з python:
ПРИМІТКА: Я ще цього не пробував :)
помістіть свій сценарій демона в bin
каталог вашого швидкого проекту, наприклад:bin/yourapp-launcher
додайте у 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
відредагуйте 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.
Завантажте все в логіку програми, наприклад, ініціалізуйте ~ / .config / autostart / yurapp-launcher.desktop під час першого запуску, наприклад, аналогічно тому, як це робить GmailNotify App .
На відміну від GmailNotify App, ви можете полегшити в бібліотеці python-xdg доступ до стандартів freedesktop.org:
import xdg
print xdg.BaseDirectory.xdg_config_home
Дуже добре для демонів, керованих користувачем.
Як я бачу, немає шаблону, щоб швидко додати демон. Однак ви можете зробити свій внесок, створивши шаблон демона. Як створити власний шаблон, пояснено у відповіді на це запитання: Як створити новий швидкий шаблон програми
Ви також можете приєднатися до групи шаблонів спільнот на 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.
Переглядаючи документи Quickly, здається, що Quickly не підтримує створення створених демонів. Тому я пропоную бібліотеку демонів Python . Крім того, перейдіть до наступних навчальних посібників Python, які можна легко поєднати з додатком Quick:
Також це запитання щодо переповнення стека стосується демонів Python.
У Python 3.3 буде встановлений демон-модуль для управління демонами.