Faça o daemon iniciar com o Linux

4

Estou escrevendo um aplicativo daemon simples usando C / C ++ e quero que ele seja iniciado quando o Linux for iniciado.

Eu sou um iniciante em sistemas Linux.

Eu tentei modificar /etc/init.d/skeleton para adicionar um script ao diretório init.d da seguinte forma

  1. adicionou meu aplicativo daemon no diretório /usr/sbin/ e alterou NAME=myDaemon

  2. escreva update-rc.d myDaemon default no terminal

  3. e adicionou links simbólicos a rc#.d diretórios

Mas não funcionou.

Minha segunda tentativa foi modificar rc.local como

/usr/sbin/myDaemon start 

Mas isso também não funcionou.

Como posso fazer meu daemon iniciar com o sistema operacional? Eu quero fazer tudo programaticamente.

Eu uso o Ubuntu 10.10, mas se existe uma solução geral para todas as distribuições, isso seria ótimo!

    
por Kevin 22.01.2012 / 09:36

2 respostas

9

Você não modifica o arquivo /etc/init.d/skeleton . Você copia para um novo arquivo /etc/init.d/mamoudservice (substitua mamoudservice por um nome mais adequado) e então edita esse novo arquivo apropriadamente.

Em seguida, você adiciona um link simbólico de /etc/rc2.d/S99mamoudservice a /etc/init.d/mamoudservice etc.

Use, por exemplo,

   /bin/bash -vx /etc/init.d/mamoudservice start

para entender como o bash shell está interpretando seu script.

Se o seu programa daemon /usr/sbin/mamouddaemon estiver codificado em C ou C ++, sugiro usar openlog e syslog dentro, pelo menos para obter mensagens de depuração (não envie para stderr ou stdout em um daemon, não poderia ir a lugar nenhum).

Uma alternativa para ter seu script /etc/init.d/mamoudservice pode ser colocar uma entrada @reboot no seu crontab

    
por 22.01.2012 / 09:54
2

Tente chkconfig com o nome do seu serviço e depois "on". Isso deve ser executado como root.

    
por 22.01.2012 / 09:43