¿Cómo agrego un demonio a mi aplicación Quickly?


10

Estoy creando una aplicación rápidamente , y quería agregar un demonio que se ejecute en segundo plano. ¿Cómo haces esto?


Deberías echar un vistazo a D-Bus.
ADcomp

Proporcione un enlace a la página de inicio rápida. Con un nombre como ese no se puede buscar en Google.
dotancohen

¿Qué se supone que debe hacer este demonio? ¿Tiene que ser público o solo para su aplicación?
Timo

@dotancohen Hecho. Aunque sugeriría que el bit de importación es que está en Python.
8128

@Timo No puedo hablar por Vigesh, pero por mi generosidad estoy buscando algo solo para mi aplicación
8128

Respuestas:


1

Hasta donde sé, no hay nada específico rápidamente para evitar o ayudarlo a ejecutar demonios, pero hay al menos dos opciones que sé / supongo que puede hacerlo con python:

Opción # 1: Distutils

NOTA: Todavía no probé este :)

  1. ponga su script daemon en el bindirectorio de su proyecto rápido, por ejemplo:bin/yourapp-launcher

  2. agregue lo siguiente en el data/yourapp-launcher.desktoparchivo:

    [Desktop Entry]
    Name=Your App
    Exec=/bin/sh -c 'yourapp-launcher'
    Type=Application
    X-GNOME-Autostart-Delay=30
    Icon=yourapp
    Comment=
    NoDisplay=true
  3. editar setup.pyy especificar adicional data_filesen la sección DistUtilsExtra, por ejemplo:

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

Parece un camino a seguir cuando el demonio debe estar ejecutándose para todos los usuarios, por ejemplo, cómo funciona U1.

Opción # 2: código duro

Codifique todo en la lógica de su aplicación, por ejemplo, inicialice ~ / .config / autostart / yurapp-launcher.desktop en la primera ejecución, por ejemplo, similar a cómo lo hace la aplicación GmailNotify .

A diferencia de la aplicación GmailNotify, puede confiar en la biblioteca python-xdg para acceder a los estándares de freedesktop.org:

import xdg
print xdg.BaseDirectory.xdg_config_home

Parece bueno para los demonios administrados por los usuarios.


1

Por lo que puedo ver, no hay una plantilla para agregar un demonio rápidamente. Sin embargo, puedes contribuir creando una plantilla de demonio. La respuesta a esta pregunta explica cómo crear su propia plantilla: Cómo crear una nueva plantilla de aplicación rápida

También puede unirse al grupo de plantillas de la comunidad en Launchpad, para que su plantilla esté disponible para que otros la usen.

EDITAR: También existe la plantilla de lente Unity . Solo funcionará con Ubuntu Unity, por lo que dependerá de la plataforma (una debilidad bastante significativa si me pregunta). Pero parece tener las cosas de D-Bus listas desde el principio. Como un demonio, pero tal vez no del todo. Podría usar esto como punto de partida para crear un demonio independiente de la plataforma, tal vez ...

No conozco más detalles que los que puedo vincular con otros, lo siento. Solo mirando esto yo mismo para descubrir cómo usar Qt4 rápidamente. EDIT2: Acabo de descubrir que hay un componente D-Bus para Qt, que haría que su plataforma daemon sea independiente (trabajando en Windows y Linux, etc.). Este foro de discusión ( http://www.qtcentre.org/threads/38453-Send-and-receive-a-signal-between-2-Qt-applications ) tiene un ejemplo (en C ++, pero aún) de cómo usar eso. O puede buscar en Google QDBusConnection y QDBusMessage.


0

Mirando a través de los documentos de Quickly, parece que Quickly no admite de forma nativa la creación de demonios. Por lo tanto, sugiero la Biblioteca Python Daemon . Además, repase los siguientes tutoriales de Python que podrían interactuar fácilmente desde una aplicación Quickly:

Además, esta pregunta de desbordamiento de pila aborda los demonios de Python.


He revisado muchos de los enlaces, pero estoy buscando una forma recomendada de conectar mi aplicación GUI rápida y un demonio que se ejecutará en paralelo. El demonio debe estar empaquetado con la misma aplicación y debe iniciarse en el arranque.
Vignesh

Nuevamente, Quickly no es compatible con esto. Tendrá que graduar la aplicación de Quickly a Python 'real'. Es por eso que proporcioné los enlaces de ejemplo.
dotancohen

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.