Ich baue schnell eine App mit und wollte einen Daemon hinzufügen, der im Hintergrund ausgeführt wird. Wie machst Du das?
Ich baue schnell eine App mit und wollte einen Daemon hinzufügen, der im Hintergrund ausgeführt wird. Wie machst Du das?
Antworten:
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:
HINWEIS: Ich habe diesen noch nicht ausprobiert :)
Legen Sie Ihr Daemon-Skript in das bin
Verzeichnis Ihres schnellen Projekts, z.bin/yourapp-launcher
Fügen Sie der data/yourapp-launcher.desktop
Datei 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
Bearbeiten setup.py
und geben Sie zusätzliche data_files
im Abschnitt DistUtilsExtra an, z.
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'])]
)
Scheint ein langer Weg zu sein, wenn der Daemon für alle Benutzer ausgeführt werden muss, z. B. ähnlich wie U1 funktioniert.
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.
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.
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.
Python 3.3 verfügt über ein Daemon-Modul für die Verwaltung von Daemons.