init.d é o sistema antigo e obsoleto para iniciar daemons; Este foi substituído pelo iniciante . O upstart tem a vantagem de ser muito mais fácil de configurar e permite o seqüenciamento adequado da inicialização da tarefa.
Os arquivos de configuração do upstart estão em / etc / init e se o seu daemon não possui pré-requisitos, pode ser tão simples quanto tty1.conf:
# tty1 - getty
#
# This service maintains a getty on tty1 from the point the system is
# started until it is shut down again.
start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]
respawn
exec /sbin/getty -8 38400 tty1
nesse caso, você pode copiar esse arquivo e modificá-lo a seu gosto. Configurações mais complexas são melhor documentadas no site inicial e em outras entradas em / etc / init.
adicionado em resposta ao comentário
Se você usa o upstart ou o init.d, ainda precisará de alguma maneira de determinar quando o Firebird é inicializado corretamente. Infelizmente, o Firebird em si não parece ter uma boa maneira de verificar se está instalado e funcionando . Portanto, a recomendação de colocar o seu programa inicial no /etc/rc.local é certamente a mais fácil, e no Ubuntu - pelo menos - é garantido que será executado o mais tarde possível no processo de inicialização.
se você não deseja migrar para o UPSTART, mas deseja a abordagem clássica, deve:
NOTA: estou salvando o serviço e o programa com o mesmo nome em diretórios diferentes (mas você pode alterar isso, desde que esteja refletido no seu arquivo de serviço). mude "myscriptname" e "myprogramname" para nomes reais!
salve seu programa que será executado como um serviço em / usr / sbin
sudo cp myprogramname /usr/sbin/myscriptname
crie um script básico de inicialização (use /etc/init.d/skeleton como referência)
mova esse script para /etc/init.d
sudo mv /etc/init.d/myscriptname
dê permissão a este script executável (usei 775, mas você pode configurá-lo mais baixo)
sudo chmod 755 /etc/init.d/myscriptname
vá para /etc/init.d
cd /etc/init.d
incluir na lista de inicialização com baixa prioridade de inicialização
sudo update-rc.d myscriptname defaults 97 03
reinicie sua máquina e verifique se o serviço foi iniciado corretamente
se o seu serviço não estiver sendo iniciado corretamente, verifique primeiro se ele é executado quando chamado manualmente:
abaixo, incluo um arquivo de serviço de amostra que realmente funciona. compare-o ao serviço de esqueleto para entender o que você precisa configurar. NOTA: isso funciona na implementação LAMP clássica do AWS EC2 da nuvem amazônica Ubuntu 12.04 (também no Kubuntu 15.10).
fonte
Faça uma cópia do /etc/init.d/skeleton e edite-a nos locais apropriados para iniciar / parar / reiniciar o serviço. É muito bem comentado, portanto, você poderá criar um script init.d funcionando em pouco tempo.
fonte
/etc/rc.local
fonte
pleaserun
é um script ruby que tenta resolver o problema de criar automaticamente um script init com um único comando. citando sua página:"Com o pleaserun, você pode gerar os seguintes lançadores / scripts / o que for:
launchd
iniciante
systemd
runit
sysv init "
Ele também detecta qual sistema init está em uso e gera o script de acordo.
fonte