Como adiciono um daemon à minha aplicação Rapidamente?

10

Estou desenvolvendo um aplicativo com rapidamente e quero adicionar um daemon que será executado em segundo plano. Como você faz isso?

    
por Vignesh 28.06.2012 / 13:08

4 respostas

1

Até onde eu sei, não há nada específico para evitar ou ajudá-lo rapidamente a executar daemons, mas há pelo menos duas opções que eu sei / acho que você pode fazer isso com python:

Opção # 1: Distutils

NOTA: Eu não tentei este ainda:)

  1. coloque o seu script daemon no diretório bin do seu projeto, por exemplo: bin/yourapp-launcher

  2. adicione o seguinte no arquivo data/yourapp-launcher.desktop :

    [Desktop Entry]
    Name=Your App
    Exec=/bin/sh -c 'yourapp-launcher'
    Type=Application
    X-GNOME-Autostart-Delay=30
    Icon=yourapp
    Comment=
    NoDisplay=true
    
  3. edite setup.py e especifique data_files adicional na seção DistUtilsExtra, por exemplo:

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

Parece que há uma maneira de ir quando o daemon deve estar em execução para todos os usuários, por exemplo, semelhante como funciona o U1.

Opção nº 2: código de hardware

Codifique tudo em sua lógica de aplicativo, por exemplo, inicialize ~ / .config / autostart / yurapp-launcher.desktop na primeira execução, por exemplo semelhante a como GmailNotify App faz isso.

Ao contrário do GmailNotify App, você pode contar com a 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.

    
por wik 04.07.2012 / 16:42
1

Pelo que vejo, não há um 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 participar do grupo de modelos de comunidades no Launchpad, para disponibilizar seu modelo para uso de outras pessoas.

EDIT: Há também o modelo de lente Unity . Ele só funcionará com o Ubuntu Unity, então você será dependente da plataforma (fraqueza bastante significativa se você me perguntar). Mas parece que as coisas do D-Bus estão prontas desde o início. Como um daemon, mas talvez não seja bem assim. Você poderia usar isso como um ponto de partida para criar um daemon independente de plataforma, talvez ...

Eu não conheço nenhum detalhe além do que posso linkar dos outros, desculpe. Apenas olhando para mim mesmo para descobrir como usar o Qt4 rapidamente. EDIT2: Acabei de descobrir que existe um componente D-Bus para o Qt, o que tornaria sua plataforma daemon independente (trabalhando no Windows e no Linux, etc.). Este fórum de discussão ( link ) tem um exemplo (em C ++, mas ainda) de como usá-lo. Ou você pode pesquisar no Google por QDBusConnection e QDBusMessage.

    
por GaRyu 05.07.2012 / 14:36
0

Examinando rapidamente o documento, parece que o Quickly não suporta nativamente a criação de daemons. Portanto, sugiro a biblioteca de daemon do Python . Além disso, consulte os seguintes tutoriais do Python que podem ser facilmente conectados a partir de um aplicativo do Quickly:

Além disso, esta questão do Stack Overflow aborda daemons do Python .

    
por dotancohen 03.07.2012 / 18:51
0

O Python 3.3 terá um módulo daemon para o gerenciamento de daemons.

    
por Ramchandra Apte 04.07.2012 / 14:08