Come faccio ad aggiungere un demone alla mia applicazione Quickly?


10

Sto creando un'app rapidamente e volevo aggiungere un demone che verrà eseguito in background. Come fai a fare questo?


Dovresti dare un'occhiata a D-Bus.
ADcomp

Fornisci un link alla homepage rapida. Con un nome del genere non è possibile cercarlo su Google.
dotancohen,

Cosa dovrebbe fare questo demone? Deve essere pubblico o solo per la tua applicazione?
Timo,

@dotancohen Fatto. Anche se suggerirei che il bit di importazione è che è in Python.
8128

@Timo Non posso parlare per Vigesh, ma per la mia generosità sto guardando qualcosa solo per la mia domanda
8128

Risposte:


1

Per quanto ne so non c'è nulla di specifico nel prevenire o assistere rapidamente l'esecuzione di demoni, ma ci sono almeno due opzioni che conosco / immagino che tu possa fare con Python:

Opzione n. 1: Distutils

NOTA: non l'ho ancora provato :)

  1. inserisci il tuo script daemon nella bindirectory del tuo progetto rapido, ad esempio:bin/yourapp-launcher

  2. aggiungere quanto segue nel data/yourapp-launcher.desktopfile:

    [Desktop Entry]
    Name=Your App
    Exec=/bin/sh -c 'yourapp-launcher'
    Type=Application
    X-GNOME-Autostart-Delay=30
    Icon=yourapp
    Comment=
    NoDisplay=true
    
  3. modificare setup.pye specificare ulteriori data_filesnella sezione DistUtilsExtra, ad esempio:

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

Sembra un modo per andare quando il demone deve essere in esecuzione per tutti gli utenti, ad esempio come funziona U1.

Opzione 2: Hardcode

Hardcode tutto nella logica della tua app, ad esempio inizializzare ~ / .config / autostart / yurapp-launcher.desktop al primo avvio, ad esempio simile a come fa l'app GmailNotify .

A differenza dell'app GmailNotify, puoi fare affidamento sulla libreria python-xdg per accedere agli standard freedesktop.org:

import xdg
print xdg.BaseDirectory.xdg_config_home

Sembra buono per i demoni gestiti dall'utente.


1

Da quello che posso vedere non esiste un modello per aggiungere rapidamente un demone. Tuttavia, puoi contribuire creando un modello daemon. Come creare il proprio modello è spiegato nella risposta a questa domanda: Come creare un nuovo modello di applicazione rapidamente

Puoi anche unirti al gruppo di modelli di comunità su Launchpad, per rendere il tuo modello disponibile per essere utilizzato da altri.

EDIT: c'è anche il modello di obiettivo Unity . Funzionerà solo con Ubuntu Unity, quindi sarai dipendente dalla piattaforma (debolezza piuttosto significativa se me lo chiedi). Ma sembra che le cose D-Bus siano pronte dall'inizio. Un po 'come un demone, ma forse non del tutto. Puoi usarlo come punto di partenza per creare un demone indipendente dalla piattaforma, forse ...

Non conosco dettagli diversi da quello che posso collegare da altri, mi dispiace. Sto solo guardando questo per scoprire come usare Qt4 rapidamente. EDIT2: Ho appena scoperto che esiste un componente D-Bus in Qt, che renderebbe indipendente la tua piattaforma daemon (funzionante su Windows, Linux ecc.). Questo forum di discussione ( http://www.qtcentre.org/threads/38453-Send-and-receive-a-signal-b Between-2-Qt-applications) ha un esempio (in C ++, ma comunque) di come usare esso. Oppure puoi google per QDBusConnection e QDBusMessage.


0

Esaminando i documenti Quickly, sembra che Quickly non supporti nativamente la creazione di demoni. Pertanto suggerisco la libreria di demoni Python . Inoltre, ripassa i seguenti tutorial di Python che potrebbero essere facilmente interfacciati da un'applicazione Quickly:

Inoltre, questa domanda Stack Overflow si rivolge ai demoni Python.


Ho esaminato molti dei collegamenti, ma sto cercando un modo consigliato per connettere rapidamente la mia app GUI e un demone che verrà eseguito in parallelo. Il demone deve essere impacchettato con la stessa app e deve essere avviato all'avvio.
Vignesh,

Ancora una volta, Quickly non supporta questo. Dovrai laureare l'applicazione da Quickly a 'vero' Python. Ecco perché ho fornito i link di esempio.
dotancohen,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.