init.d
, também conhecido como script SysV, destina-se a iniciar e interromper serviços durante a inicialização e o encerramento do sistema. ( /etc/init.d/
scripts também são executados em sistemas ativados pelo systemd para compatibilidade).
- O script é executado durante a inicialização e o encerramento (por padrão).
- O script deve ser um script init.d, não apenas um script. Deve suportar
start
estop
e mais (consulte política Debian ) - O script pode ser executado durante a inicialização do sistema (você pode definir quando).
crontab
(e, portanto, @reboot
).
- o cron executará qualquer comando ou script regular, nada de especial aqui.
- qualquer usuário pode adicionar um script
@reboot
(não apenas root) - em um sistema Debian com o systemd: o @reboot do cron é executado durante
multi-user.target
. - em um sistema Debian com SysV (não systemd), mencione crontab (5): Por favor, note que startup, no que diz respeito a @reboot, é a hora em que a inicialização do daemon cron (8). Em particular, pode ser antes que alguns daemons do sistema, ou outras instalações, sejam iniciados. Isso se deve à sequência de ordem de inicialização da máquina.
- é fácil agendar o mesmo script na inicialização e periodicamente.
/etc/rc.local
é considerado frequentemente feio ou obsoleto (pelo menos por redhat ), ainda tinha alguns recursos interessantes:
- O rc.local executará qualquer comando ou script regular, nada especial aqui.
- em um sistema Debian com SysV (não systemd):
rc.local
foi (quase) o último serviço a ser iniciado. - mas em um sistema Debian com systemd:
rc.local
é executado apósnetwork.target
por padrão (nãonetwork-online.target
!)
Em relação ao network.target
e network-online.target
do systemd, leia Serviços em execução após a conclusão da rede .