Jak dodać demona do mojej aplikacji Quickly?

10

Szybko buduję aplikację i chciałem dodać demona, który będzie działał w tle. Jak Ty to robisz?

Vignesh
źródło
Powinieneś spojrzeć na D-Bus.
ADcomp
Podaj link do szybkiej strony głównej. Przy takiej nazwie nie można google google.
dotancohen
Co powinien zrobić ten diamon? Czy to musi być publiczne, czy tylko dla twojej aplikacji?
Timo,
@dotancohen Gotowe. Chociaż sugerowałbym, że bit importu jest w Pythonie.
8128
@ Timo Nie mogę mówić w imieniu Vigesh, ale dla mojej nagrody patrzę na coś tylko dla mojej aplikacji
8128

Odpowiedzi:

1

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:

Opcja nr 1: Distutils

UWAGA: jeszcze tego nie próbowałem :)

  1. umieść skrypt demona w binkatalogu szybkiego projektu, np .:bin/yourapp-launcher

  2. dodaj do data/yourapp-launcher.desktoppliku:

    [Desktop Entry]
    Name=Your App
    Exec=/bin/sh -c 'yourapp-launcher'
    Type=Application
    X-GNOME-Autostart-Delay=30
    Icon=yourapp
    Comment=
    NoDisplay=true
  3. edytuj setup.pyi określ dodatkowe data_filesw sekcji DistUtilsExtra, np .:

    DistUtilsExtra.auto.setup(
    name='hello-ubuntu',
    version='0.1',
    #license='GPL-3',
    #author='Your Name',
    #author_email='[email protected]',
    #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.

Opcja nr 2: kod stały

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.

wik
źródło
1

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.

GaRyu
źródło
0

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.

dotancohen
źródło
Przejrzałem wiele linków, ale szukam zalecanego sposobu połączenia mojej szybkiej aplikacji GUI i demona, który będzie działał równolegle. Demon musi być spakowany z tą samą aplikacją i powinien zostać uruchomiony przy starcie systemu.
Vignesh,
Ponownie Quickly nie obsługuje tego. Musisz ukończyć aplikację z Szybko do „prawdziwego” Pythona. Dlatego podałem przykładowe linki.
dotancohen
0

Python 3.3 będzie miał moduł demona do zarządzania demonami.

Ramchandra Apte
źródło