Comment ajouter un démon à mon application Quickly?

10

Je crée une application avec rapidement , et je voulais ajouter un démon qui fonctionnera en arrière-plan. Comment est-ce que tu fais ça?

Vignesh
la source
Vous devriez jeter un oeil à D-Bus.
ADcomp
Veuillez fournir un lien vers la page d'accueil rapide. Avec un nom comme celui-là, on ne peut pas le chercher sur Google.
dotancohen
Qu'est-ce que ce démon est censé faire? Doit-il être public ou uniquement pour votre application?
Timo
@dotancohen Done. Bien que je suggère que le bit d'importation soit en Python.
8128
@Timo Je ne peux pas parler pour Vigesh, mais pour ma prime, je regarde quelque chose juste pour mon application
8128

Réponses:

1

Pour autant que je sache, il n'y a rien de spécifique dans rapidement pour vous empêcher ou vous aider à exécuter des démons, mais il y a au moins deux options que je sais / suppose que vous pouvez le faire avec python:

Option # 1: Distutils

REMARQUE: je n'ai pas encore essayé celui-ci :)

  1. placez votre script démon dans le binrépertoire de votre projet rapidement, par exemple:bin/yourapp-launcher

  2. ajoutez ce qui suit dans le data/yourapp-launcher.desktopfichier:

    [Desktop Entry]
    Name=Your App
    Exec=/bin/sh -c 'yourapp-launcher'
    Type=Application
    X-GNOME-Autostart-Delay=30
    Icon=yourapp
    Comment=
    NoDisplay=true
  3. éditez setup.pyet spécifiez des éléments supplémentaires data_filesdans la section DistUtilsExtra, par exemple:

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

Semble un chemin à parcourir lorsque le démon doit être en cours d'exécution pour tous les utilisateurs, par exemple similaire à la façon dont U1 fonctionne.

Option # 2: Hardcode

Codez tout en dur dans la logique de votre application, par exemple, initialisez ~ / .config / autostart / yurapp-launcher.desktop lors de la première exécution, par exemple de la même manière que GmailNotify App le fait.

Contrairement à l'application GmailNotify, vous pouvez utiliser la bibliothèque python-xdg pour accéder aux normes freedesktop.org:

import xdg
print xdg.BaseDirectory.xdg_config_home

Semble bon pour les démons gérés par les utilisateurs.

wik
la source
1

D'après ce que je peux voir, il n'y a pas de modèle pour ajouter un démon rapidement. Cependant, vous pouvez contribuer en créant un modèle de démon. Comment créer votre propre modèle est expliqué dans la réponse à cette question: Comment créer rapidement un nouveau modèle d'application

Vous pouvez également rejoindre le groupe de modèles de communauté sur Launchpad, pour rendre votre modèle disponible pour les autres.

EDIT: Il existe également le modèle d'objectif Unity . Cela ne fonctionnera qu'avec Ubuntu Unity, vous serez donc dépendant de la plateforme (faiblesse assez importante si vous me le demandez). Mais il semble que les choses D-Bus soient prêtes dès le départ. Un peu comme un démon, mais peut-être pas tout à fait. Vous pouvez l'utiliser comme point de départ pour créer un démon indépendant de la plate-forme, peut-être ...

Je ne connais aucun détail autre que ce que je peux lier à d'autres, désolé. Je regarde ça moi-même pour savoir comment utiliser Qt4 rapidement. EDIT2: Je viens de découvrir qu'il existe un composant D-Bus dans Qt, qui rendrait votre plate-forme démon indépendante (fonctionnant sous Windows et Linux, etc.). Ce forum de discussion ( http://www.qtcentre.org/threads/38453-Send-and-receive-a-signal-between-2-Qt-applications ) a un exemple (en C ++, mais toujours) d'utilisation. il. Ou vous pouvez google pour QDBusConnection et QDBusMessage.

GaRyu
la source
0

En parcourant les documents Quickly, il semble que Quickly ne supporte pas nativement la création de démons. Par conséquent, je suggère la bibliothèque de démon Python . Consultez également les didacticiels Python suivants qui peuvent être facilement interfacés à partir d'une application Quickly:

De plus, cette question Stack Overflow concerne les démons Python.

dotancohen
la source
J'ai parcouru de nombreux liens, mais je cherche un moyen recommandé de connecter rapidement mon application graphique et un démon qui fonctionnera en parallèle.Le démon doit être fourni avec la même application et doit être démarré au démarrage.
Vignesh
Encore une fois, Quickly ne prend pas en charge cela. Vous devrez graduer l'application de Quickly en «vrai» Python. C'est pourquoi j'ai fourni les liens d'exemple.
dotancohen
0

Python 3.3 aura un module démon pour la gestion des démons.

Ramchandra Apte
la source