web-dev-qa-db-fra.com

Comment ajouter un démon à mon application Quickly?

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?

10
Vignesh

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 répertoire bin de votre projet rapid, par exemple: bin/yourapp-launcher

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

    [Desktop Entry]
    Name=Your App
    Exec=/bin/sh -c 'yourapp-launcher'
    Type=Application
    X-GNOME-Autostart-Delay=30
    Icon=yourapp
    Comment=
    NoDisplay=true
    
  3. éditer setup.py et spécifiez data_files dans 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 comment fonctionne U1.

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 ex. similaire à la façon dont 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.

1
wik

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 y a aussi 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 cela moi-même pour découvrir 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 quand même) comment l'utiliser. Ou vous pouvez google pour QDBusConnection et QDBusMessage.

1
GaRyu

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

0
Ramchandra Apte

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 Python Daemon Library . Passez également en revue les didacticiels Python qui pourraient être facilement interfacés à partir d'une application Quickly:

En outre, cette question de débordement de pile adresse Python.

0
dotancohen