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:)
-
coloque o seu script daemon no diretório
bin
do seu projeto, por exemplo:bin/yourapp-launcher
-
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
-
edite
setup.py
e especifiquedata_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.