Inicia o processo raiz na inicialização?

1

Gostaria de iniciar um processo em segundo plano como root quando minha instalação do Linux for inicializada. Posso apenas adicioná-lo a um diretório ou arquivo de configuração?

    
por tkbx 23.09.2013 / 16:19

2 respostas

5

Basicamente, você tem duas opções:

  1. use uma tarefa cron com a especificação @reboot time (consulte crontab(1) man-page para obter detalhes)

  2. inicie pelo sistema init. Para o estilo de inicialização do BSD / SysV, isso significa adicionar um script em algum lugar para ser executado no nível de execução desejado. Para o systemd, isso envolve criar um arquivo de unidade e requerê-lo pelo destino desejado.

A primeira solução é melhor para coisas locais para uma ou duas máquinas (desde que eles são mais de uma coisa de configuração); o segundo é adequado para service / daemon, como coisas que provavelmente serão executadas em mais sistemas - e devem, na verdade, ser empacotadas para facilitar a manutenção.

    
por 23.09.2013 / 16:40
1

A maneira mais fácil de executar um processo como root no momento da inicialização é iniciá-lo a partir de /etc/rc.local . Edite esse arquivo e adicione uma linha como

/path/to/my/daemon &

No entanto, esta não é uma maneira muito boa de iniciar um daemon. Você não tem nenhuma maneira conveniente de controlá-lo (verifique se ele está em execução, pare, reinicie, etc.).

Existem vários frameworks para controlar daemons. Eles estão ligados ao seu sistema init: Sysvinit, Upstart, Systemd, cada um tem o seu caminho. Verifique o que está instalado em seu sistema (varia entre as variantes unix e, para o Linux, varia de acordo com a distribuição e pela escolha do administrador).

    
por 23.09.2013 / 23:16