Como adiciono um daemon ao meu aplicativo Quickly?

10

Estou criando um aplicativo rapidamente , e queria adicionar um daemon que será executado em segundo plano. Como você faz isso?

Vignesh
fonte
Você deve dar uma olhada no D-Bus.
ADcomp 02/07/2012
Forneça um link para a página inicial rapidamente. Com um nome como esse não é possível pesquisar no Google.
dotancohen
O que esse daemon deveria fazer? Precisa ser público ou apenas para o seu aplicativo?
Timo
@dotancohen Concluído. Embora eu sugira que o bit de importação é que está em Python.
8128
@Timo eu não posso falar por Vigesh, mas para a minha recompensa Eu estou olhando para algo apenas para a minha candidatura
8128

Respostas:

1

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:

Opção 1: Distutils

NOTA: Ainda não testei este :)

  1. Coloque seu script daemon no bindiretório do seu projeto rapidamente, por exemplo:bin/yourapp-launcher

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

    [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.pye especifique adicional data_filesna 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 um caminho a percorrer quando o daemon deve estar em execução para todos os usuários, por exemplo, semelhante ao funcionamento do U1.

Opção 2: Hardcode

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.

wik
fonte
1

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.

GaRyu
fonte
0

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.

dotancohen
fonte
Passei por muitos dos links, mas estou procurando uma maneira recomendada de conectar meu aplicativo GUI rapidamente e um daemon que será executado em paralelo. O daemon deve ser empacotado com o mesmo aplicativo e deve ser iniciado na inicialização.
Vignesh
Novamente, o Quickly não suporta isso. Você precisará graduar o aplicativo do Quickly para o Python 'real'. Foi por isso que forneci os links de exemplo.
dotancohen
0

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

Ramchandra Apte
fonte