Szybko buduję aplikację i chciałem dodać demona, który będzie działał w tle. Jak Ty to robisz?
Szybko buduję aplikację i chciałem dodać demona, który będzie działał w tle. Jak Ty to robisz?
Odpowiedzi:
O ile wiem, nie ma nic konkretnego w szybkim zapobieganiu lub pomocy w uruchamianiu demonów, ale istnieją co najmniej dwie opcje, które znam / domyślam się, że można to zrobić za pomocą Pythona:
UWAGA: jeszcze tego nie próbowałem :)
umieść skrypt demona w bin
katalogu szybkiego projektu, np .:bin/yourapp-launcher
dodaj do data/yourapp-launcher.desktop
pliku:
[Desktop Entry]
Name=Your App
Exec=/bin/sh -c 'yourapp-launcher'
Type=Application
X-GNOME-Autostart-Delay=30
Icon=yourapp
Comment=
NoDisplay=true
edytuj setup.py
i określ dodatkowe data_files
w sekcji DistUtilsExtra, np .:
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'])]
)
Wydaje się, że należy przejść, gdy demon musi być uruchomiony dla wszystkich użytkowników, np. Podobnie działa U1.
Zaszyfruj wszystko do logiki aplikacji, na przykład zainicjuj ~ / .config / autostart / yurapp-launcher.desktop przy pierwszym uruchomieniu, np. Podobnie jak robi to aplikacja GmailNotify .
W przeciwieństwie do aplikacji GmailNotify możesz polegać na bibliotece python-xdg, aby uzyskać dostęp do standardów freedesktop.org:
import xdg
print xdg.BaseDirectory.xdg_config_home
Wydaje się dobre dla demonów zarządzanych przez użytkowników.
Z tego, co widzę, nie ma szablonu, aby szybko dodać demona. Możesz jednak wnieść swój wkład, tworząc szablon demona. Jak utworzyć własny szablon wyjaśniono w odpowiedzi na to pytanie: Jak utworzyć nowy szybki szablon aplikacji
Możesz także dołączyć do grupy szablonów społeczności w Launchpad, aby udostępnić swój szablon innym osobom.
EDYCJA: Istnieje również szablon soczewki Unity . Będzie działać tylko z Ubuntu Unity, więc będziesz zależny od platformy (raczej znacząca słabość, jeśli mnie zapytasz). Ale wygląda na to, że D-Bus jest gotowy od samego początku. Coś jak demon, ale może nie do końca. Możesz to wykorzystać jako punkt wyjścia do stworzenia niezależnego od platformy demona, być może ...
Przepraszam, nie znam żadnych szczegółów poza tym, co mogę połączyć z innymi. Wystarczy spojrzeć na to sam, aby szybko dowiedzieć się, jak korzystać z Qt4. EDIT2: Właśnie odkryłem, że Qt posiada komponent D-Bus, który uniezależniałby twoją platformę demona (działając na Windowsie i Linuksie itp.) To forum dyskusyjne ( http://www.qtcentre.org/threads/38453-Send-and-receive-a-signal-between-2-Qt-applications ) zawiera przykład (w C ++, ale nadal), jak używać to. Lub możesz google dla QDBusConnection i QDBusMessage.
Przeglądając dokumenty Quickly, wydaje się, że Quickly natywnie nie obsługuje tworzenia demonów. Dlatego sugeruję bibliotekę demonów Python . Ponadto przejrzyj następujące samouczki języka Python, które można łatwo połączyć z aplikacją Szybko:
Również ta kwestia przepełnienia stosu adresów demonów Python.
Python 3.3 będzie miał moduł demona do zarządzania demonami.