Wie füge ich meiner Quickly-Anwendung einen Daemon hinzu?

10

Ich baue schnell eine App mit und wollte einen Daemon hinzufügen, der im Hintergrund ausgeführt wird. Wie machst Du das?

Vignesh
quelle
Sie sollten sich D-Bus ansehen.
ADcomp
Bitte geben Sie einen Link zur schnellen Homepage an. Mit einem solchen Namen kann man ihn nicht googeln.
Dotancohen
Was soll dieser Deamon tun? Muss es öffentlich sein oder nur für Ihre Bewerbung?
Timo
@dotancohen Fertig. Obwohl ich vorschlagen würde, dass das Importbit in Python ist.
8128
@ Timo Ich kann nicht für Vigesh sprechen, aber für mein Kopfgeld schaue ich etwas nur für meine Bewerbung
8128

Antworten:

1

Soweit ich weiß, gibt es nichts Spezielles, um Sie schnell daran zu hindern oder zu unterstützen, Dämonen auszuführen, aber es gibt mindestens zwei Optionen, von denen ich weiß / denke, dass Sie dies mit Python tun können:

Option 1: Distutils

HINWEIS: Ich habe diesen noch nicht ausprobiert :)

  1. Legen Sie Ihr Daemon-Skript in das binVerzeichnis Ihres schnellen Projekts, z.bin/yourapp-launcher

  2. Fügen Sie der data/yourapp-launcher.desktopDatei Folgendes hinzu :

    [Desktop Entry]
    Name=Your App
    Exec=/bin/sh -c 'yourapp-launcher'
    Type=Application
    X-GNOME-Autostart-Delay=30
    Icon=yourapp
    Comment=
    NoDisplay=true
  3. Bearbeiten setup.pyund geben Sie zusätzliche data_filesim Abschnitt DistUtilsExtra an, z.

    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'])]
    )

Scheint ein langer Weg zu sein, wenn der Daemon für alle Benutzer ausgeführt werden muss, z. B. ähnlich wie U1 funktioniert.

Option 2: Hardcode

Codieren Sie alles fest in Ihre App-Logik, z. B. initialisieren Sie ~ / .config / autostart / yurapp-launcher.desktop beim ersten Ausführen, z. B. ähnlich wie bei GmailNotify App .

Im Gegensatz zur GmailNotify-App können Sie die python-xdg- Bibliothek entlasten, um auf die Standards von freedesktop.org zuzugreifen:

import xdg
print xdg.BaseDirectory.xdg_config_home

Scheint gut für benutzerverwaltete Daemons.

wik
quelle
1

Soweit ich sehen kann, gibt es keine Vorlage, um schnell einen Daemon hinzuzufügen. Sie können jedoch einen Beitrag leisten, indem Sie eine Daemon-Vorlage erstellen. Wie Sie eine eigene Vorlage erstellen, erfahren Sie in der Antwort auf diese Frage: So erstellen Sie eine neue schnelle Anwendungsvorlage

Sie können auch der Community-Vorlagengruppe von Launchpad beitreten , um Ihre Vorlage für andere Benutzer verfügbar zu machen.

BEARBEITEN: Es gibt auch die Unity-Objektivvorlage . Es wird nur mit Ubuntu Unity funktionieren, so dass Sie plattformabhängig sind (ziemlich erhebliche Schwäche, wenn Sie mich fragen). Aber es scheint, dass D-Bus-Dinge von Anfang an bereit sind. Ein bisschen wie ein Dämon, aber vielleicht nicht ganz. Sie können dies als Ausgangspunkt verwenden, um einen plattformunabhängigen Daemon zu erstellen, vielleicht ...

Ich kenne keine anderen Details als das, was ich von anderen verlinken kann, sorry. Schauen Sie sich das selbst an, um herauszufinden, wie Sie Qt4 schnell verwenden können. EDIT2: Ich habe gerade festgestellt, dass Qt eine D-Bus-Komponente enthält, die Ihre Daemon-Plattform unabhängig macht (unter Windows und Linux usw.). Dieses Diskussionsforum ( http://www.qtcentre.org/threads/38453-Send-and-receive-a-signal-between-2-Qt-applications ) enthält ein Beispiel (in C ++, aber immer noch) für die Verwendung es. Oder Sie können nach QDBusConnection und QDBusMessage googeln.

GaRyu
quelle
0

Wenn Sie sich die Quickly-Dokumente ansehen, scheint es, dass Quickly das Erstellen von Daemons nicht nativ unterstützt. Daher schlage ich die Python Daemon Library vor . Lesen Sie auch die folgenden Python-Tutorials durch, die über eine Quickly-Anwendung problemlos miteinander verbunden werden können:

Auch diese Stack - Überlauf Frage befasst sich Python - Daemons.

dotancohen
quelle
Ich habe viele der Links durchgesehen, suche aber nach einer empfohlenen Möglichkeit, meine schnelle GUI-App und einen Daemon zu verbinden, der parallel ausgeführt wird. Der Daemon muss mit derselben App gepackt sein und sollte beim Booten gestartet werden.
Vignesh
Auch dies wird von Quickly nicht unterstützt. Sie müssen die Anwendung von "Schnell" auf "echtes" Python umstellen. Deshalb habe ich die Beispiellinks bereitgestellt.
Dotancohen
0

Python 3.3 verfügt über ein Daemon-Modul für die Verwaltung von Daemons.

Ramchandra Apte
quelle