Eu tenho uma pergunta sobre o Apache aqui.
Durante toda a minha carreira como desenvolvedor, reiniciei o Apache assim:
sudo /etc/init.d/apache2 restart
Hoje eu implantei meu primeiro aplicativo Rails, mas estava tendo problemas para reiniciar o Apache na máquina host. Quando eu tentava dessa maneira, o Apache tentava reiniciar, mas acabava travando.
Isso, no entanto, funcionou bem:
sudo apachectl restart
Quais são as diferenças entre essas duas técnicas? Eu tinha assumido que o último era, na melhor das hipóteses, "açúcar sintático" para o primeiro, mas esse não deve ser o caso, dado que o último funcionava enquanto o primeiro não.
Se for relevante (e suspeito que possa ser), este aplicativo Rails usa o Phusion Passenger. Minha experiência anterior em desenvolvimento (segundo a qual o método anterior funciona bem) é principalmente com PHP. Eu sou muito novo no Rails.
O servidor em questão está executando o Ubuntu 11.04 (Natty).
fonte
Respostas:
Este método usa os scripts de inicialização da sua distribuição Linux para reiniciar o processo. Esses scripts são executados no momento da inicialização para iniciar o apache.
Este método usa o programa de controle apachectl . Em quase todas as ocasiões, eu recomendaria o uso de apachectl the para manipular o daemon apache. Você tem um controle mais refinado sobre como o processo é reiniciado (consulte normalmente vs. reinicialização), opções de validação de configuração e uma maneira de obter informações de status.
A principal diferença entre o uso dos scripts init para reiniciar o apache e o apachectl é que o apachectl foi projetado especificamente para permitir que os administradores controlem o apache, enquanto os scripts init são projetados como uma maneira generalizada para o Unixes iniciar processos após o carregamento do kernel e do init daeamon.
EDIT: Infelizmente, não tenho idéia de como resolver seu problema com o Rails ou o Phusion Passenger. Tente procurar nos seus logs do Apache por pistas.
fonte