Use o chkconfig para gerenciar os runlevels sob os quais você deseja que este serviço seja iniciado.
Normalmente o chkconfig httpd em faz o trabalho.
Eu tenho o apache2 instalado no Amazon Linux AMI release 2012.03. Eu posso iniciá-lo manualmente muito bem, sem erros usando /etc/init.d/httpd start
. No entanto, ele não é iniciado automaticamente quando a máquina é inicializada.
Parece que tudo está configurado corretamente em meus diretórios rc * .d. Aqui está o resultado de find /etc/rc.d -name "*httpd*" | xargs ls -l
:
-rwxr-xr-x 1 root root 3371 Feb 16 2012 /etc/rc.d/init.d/httpd
lrwxrwxrwx 1 root root 15 Apr 14 2012 /etc/rc.d/rc0.d/K15httpd -> ../init.d/httpd
lrwxrwxrwx 1 root root 15 Apr 14 2012 /etc/rc.d/rc1.d/K15httpd -> ../init.d/httpd
lrwxrwxrwx 1 root root 15 Apr 14 2012 /etc/rc.d/rc2.d/K15httpd -> ../init.d/httpd
lrwxrwxrwx 1 root root 15 Apr 14 2012 /etc/rc.d/rc3.d/K15httpd -> ../init.d/httpd
lrwxrwxrwx 1 root root 15 Apr 14 2012 /etc/rc.d/rc4.d/K15httpd -> ../init.d/httpd
lrwxrwxrwx 1 root root 15 Apr 14 2012 /etc/rc.d/rc5.d/K15httpd -> ../init.d/httpd
lrwxrwxrwx 1 root root 15 Apr 14 2012 /etc/rc.d/rc6.d/K15httpd -> ../init.d/httpd
Entendo que posso colocar o comando /etc/init.d/httpd start
em /etc/rc.local
, mas isso não é uma solução alternativa? Por que não está começando automaticamente? Outras coisas nos diretórios rc * .d começam bem no boot (mongod, postfix, etc). Obrigado!
Você não tem nenhum link "S". Todos os "K" são apenas desligados. Adicione links com o mesmo nome, basta substituir o K por S.
"In general, the system starts commands that begin with the letter "S" and stops commands that begin with the letter "K." Commands that begin with the letter "K" run only when the system is changing run levels from a higher to a lower level. Commands that begin with the letter "S" run in all cases."
Se estiver usando o chkconfig, veja "man chkconfig". Para o seu caso:
chkconfig --level 2345 httpd on
deve fazer.