Estou criando um aplicativo rapidamente , e queria adicionar um daemon que será executado em segundo plano. Como você faz isso?
Estou criando um aplicativo rapidamente , e queria adicionar um daemon que será executado em segundo plano. Como você faz isso?
Respostas:
Até onde eu sei, não há nada específico para impedir ou ajudá-lo a executar daemons rapidamente, mas há pelo menos duas opções que eu sei / acho que você pode fazer com python:
NOTA: Ainda não testei este :)
Coloque seu script daemon no bin
diretório do seu projeto rapidamente, por exemplo:bin/yourapp-launcher
adicione o seguinte no data/yourapp-launcher.desktop
arquivo:
[Desktop Entry]
Name=Your App
Exec=/bin/sh -c 'yourapp-launcher'
Type=Application
X-GNOME-Autostart-Delay=30
Icon=yourapp
Comment=
NoDisplay=true
edite setup.py
e especifique adicional data_files
na seção DistUtilsExtra, por exemplo:
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 um caminho a percorrer quando o daemon deve estar em execução para todos os usuários, por exemplo, semelhante ao funcionamento do U1.
Codifique tudo na lógica do seu aplicativo, por exemplo, inicialize ~ / .config / autostart / yurapp-launcher.desktop na primeira execução, por exemplo, semelhante à maneira como o GmailNotify App faz isso.
Ao contrário do GmailNotify App, você pode confiar na biblioteca python-xdg para acessar os padrões do freedesktop.org:
import xdg
print xdg.BaseDirectory.xdg_config_home
Parece bom para daemons gerenciados pelo usuário.
Pelo que vejo, não há modelo para adicionar um daemon rapidamente. No entanto, você pode contribuir criando um modelo de daemon. Como criar seu próprio modelo é explicado na resposta a esta pergunta: Como criar um novo modelo de aplicativo rapidamente
Você também pode ingressar no grupo de modelos de comunidade no Launchpad, para tornar seu modelo disponível para uso de outras pessoas.
EDIT: Há também o modelo de lente Unity . Ele funcionará apenas com o Ubuntu Unity, portanto você será dependente da plataforma (fraqueza bastante significativa se você me perguntar). Mas parece ter coisas D-Bus prontas desde o início. É como um daemon, mas talvez não seja bem assim. Você pode usar isso como ponto de partida para criar um daemon independente de plataforma, talvez ...
Não conheço outros detalhes além do que posso vincular de outros, desculpe. Apenas olhando isso para descobrir como usar o Qt4 rapidamente. EDIT2: Acabei de descobrir que existe um componente D-Bus no Qt, o que tornaria sua plataforma daemon independente (trabalhando no Windows e Linux etc.). Este fórum de discussão ( http://www.qtcentre.org/threads/38453-Send-and-receive-a-signal-between-2-Qt-applications ) possui um exemplo (em C ++, mas ainda) de como usar isto. Ou você pode pesquisar no Google por QDBusConnection e QDBusMessage.
Examinando os documentos do Quickly, parece que o Quickly não suporta nativamente a criação de daemons. Portanto, eu sugiro a biblioteca do Python Daemon . Além disso, consulte os seguintes tutoriais em Python que podem ser facilmente conectados a partir de um aplicativo Rapidamente:
Além disso, essa pergunta de estouro de pilha aborda os daemons do Python.
O Python 3.3 terá um módulo daemon para o gerenciamento de daemons.