Diferentes maneiras de reiniciar o Apache?

11

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

Eu apenas hoje implementei meu primeiro aplicativo Rails, mas estava tendo problemas para fazer o Apache reiniciar na máquina host. Quando eu tentei dessa forma, o Apache tentava reiniciar, mas acabaria por travar.

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 isso não deve ser o caso, dado que o último funcionava enquanto o primeiro não.

Se for relevante (e eu suspeito que seja), este aplicativo Rails usa o Phusion Passenger. Minha experiência de desenvolvimento anterior (em que o método antigo funciona bem) é principalmente com o PHP. Eu sou muito novo no Rails.

O servidor em questão é executado Ubuntu 11.04 (Natty).

    
por Chris Allen Lane 28.05.2011 / 00:14

1 resposta

6
sudo /etc/init.d/apache2 restart

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.

sudo apachectl restart

Esse método usa o programa de controle apachectl . Em quase todas as ocasiões, eu recomendaria o uso do apachectl para manipular o daemon do apache. Você tem um controle mais refinado sobre como o processo é reinicializado (consulte o comando gracioso versus reiniciar), opções de validação de configuração e uma maneira de obter informações de status.

A principal diferença entre usar os scripts init para reiniciar o apache e o apachectl é que o apachectl é projetado especificamente para permitir que os administradores controlem o apache, enquanto os scripts init são projetados de forma generalizada para Unixes iniciarem processos após o kernel e o init daeamon terem foi carregado.

EDIT: Infelizmente, não tenho idéia de como resolver seu problema com o Rails ou o Phusion Passenger. Tente procurar em seus registros do Apache em busca de dicas.

    
por 28.05.2011 / 00:50