Preciso iniciar meu script durante a inicialização. Eu li que os scripts em /etc/init.d & /etc/profile.d são originados durante a inicialização do sistema. Quão diferentes são esses diretórios?
Além das duas maneiras acima, parece que também podemos configurar o cron para iniciar o serviço usando uma entrada como @reboot /path/to script.
Por favor, sugira a maneira correta/eficiente de executar o script durante a inicialização do sistema.
Responder1
/etc/profile.d
é um meio específico do fornecedor para personalizar o ambiente de uma sessão shell (configuração PATH
e assim por diante) e normalmente não estaria relacionado à inicialização de um daemon; alguns até argumentariam que a inicialização do daemon não deveria de forma alguma envolver /etc/profile.d
, de modo que as personalizações do shell do usuário não podem fazer com que um daemon falhe ao carregar ou carregue com configurações de ambiente incorretas (fuso horário, localidade ou assim por diante).
/etc/init.d
faz parte do sistema init SystemV conforme implementado no Linux (o Digital UNIX, por outro lado, o colocou em /sbin/init.d
); alguém poderia escrever um script de inicialização adequado (estude os scripts existentes para ver como fazer isso corretamente) que iniciaria seu daemon. Isso lhe daria compatibilidade com RHEL6 e RHEL7.
Um @reboot
cron job poderia iniciar seu daemon, embora systemd
no RHEL7 ofereça melhores recursos de gerenciamento do que disparar e esquecer do cron (o que acontece se o daemon travar? Ele deveria ser reiniciado automaticamente? Quão ruim seria se várias instâncias fossem iniciadas? se estiver ruim, que tipo de bloqueio seria necessário para iniciar apenas uma instância?).