Sto creando un'app rapidamente e volevo aggiungere un demone che verrà eseguito in background. Come fai a fare questo?
Sto creando un'app rapidamente e volevo aggiungere un demone che verrà eseguito in background. Come fai a fare questo?
Risposte:
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:
NOTA: non l'ho ancora provato :)
inserisci il tuo script daemon nella bin
directory del tuo progetto rapido, ad esempio:bin/yourapp-launcher
aggiungere quanto segue nel data/yourapp-launcher.desktop
file:
[Desktop Entry]
Name=Your App
Exec=/bin/sh -c 'yourapp-launcher'
Type=Application
X-GNOME-Autostart-Delay=30
Icon=yourapp
Comment=
NoDisplay=true
modificare setup.py
e specificare ulteriori data_files
nella 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.
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.
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.
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.
Python 3.3 avrà un modulo demone per la gestione dei demoni.