Como recarregar a configuração do apache para um site sem reiniciar o apache


Respostas:


182

deve ser possível usando o comando

sudo /etc/init.d/apache2 reload

espero que ajude


11
Tenho certeza de que isso não está correto. Olhando no script init.d de um servidor Ubuntu, recarregar refere-se à reinicialização normal. Isso significa que recarregar é de fato uma reinicialização, mas normalmente. Minha opinião é que o apache não pode ser recarregado sem interromper o serviço.
precisa saber é o seguinte

4
A resposta de Aruman é a correta. A maioria dos scripts de inicialização do Apache envia SIGHUP, que é equivalente a 'apachectl restart', que o OP pediu especificamente para evitar. Outros scripts de inicialização do Apache enviam SIGUSR1, que é equivalente a 'apachectl graceful', que também é uma reinicialização, mas é feita com mais graciosidade, e é o que a resposta de Aruman fornece.
Bryan Larsen

@SteffenNielsen Eu acho que você está certo ... Alguns concordarão em usar um balanceador de carga, desativando o que será reiniciado, reiniciando, lidando com o db versioning e fazendo o mesmo com o outro servidor / contêiner apache. O K8s acaba com alguns desses problemas.
Ray Foss

1
Ok, aqui está o que acontece, o processo principal do apache2 não muda, mas os filhos ou trabalhadores (não sei a terminologia correta) são reiniciados, esses PIDs realmente mudam.
Elias Lynn

1
E acho gracioso, neste caso, apenas significa que essas crianças trabalhadoras terminam de atender seus pedidos antes de serem mortas e reaparecidas.
Elias Lynn


28

Faz

apachectl -k graceful

Verifique este link para obter mais informações: http://www.electrictoolbox.com/article/apache/restart-apache/


18
Isso reiniciará o daemon httpd do Apache, que a pergunta especificamente evitada.
CS01

6
@ cs01 Onde você lê que o daemon httpd será reiniciado? Tudo o que li no link fornecido na resposta diz coisas como:apachectl graceful: Gracefully restarts the Apache daemon by sending it a SIGUSR1. If the daemon is not running, it is started. This differs from a normal restart in that currently open connections are not aborted.
Tyler Collier

5
A primeira frase da documentação que você postou diz exatamente isso, não é?
CS01

3
@ cs01 Você precisa entender por que eles estão preocupados com a reinicialização. Isso não está especificado, mas meu palpite é que eles não desejam que as conexões sejam abortadas, em vez de reiniciar por si só. Um reinício normal faz isso muito bem na maioria dos casos. Se houver conexões duradouras, isso talvez seja um problema. Você também precisa de uma boa definição de reinicialização, pois tudo o que ocorre normalmente é reinicializar o processo pai, ou seja, o pid não muda, enquanto uma reinicialização normal destrói toda a árvore do processo e gera uma nova. Portanto, a resposta de Tyler Collier é perfeitamente legítima.
krad

7

Atualizado para Apache 2.4, para non-systemd (por exemplo, CentOS 6.x, Amazon Linux AMI) e para systemd (por exemplo, CentOS 7.x):

Há duas maneiras de fazer com que o processo apache recarregue a configuração, dependendo do que você deseja fazer com seus encadeamentos atuais, seja para sair quando estiver ocioso ou eliminando-os diretamente.

Observe que o Apache recomenda usar apachectl -kcomo comando e, para systemd, o comando é substituído porhttpd -k

apachectl -k graceful ou httpd -k graceful

O Apache aconselha seus threads a sair quando ociosos e, em seguida, o apache recarrega a configuração (não sai automaticamente), isso significa que as estatísticas não são redefinidas.

apachectl -k restart ou httpd -k restart

É semelhante à parada, pois o processo mata seus encadeamentos, mas, em seguida, recarrega o arquivo de configuração, em vez de se matar.

Fonte: https://httpd.apache.org/docs/2.4/stopping.html


O apache 2.4.39 (vitória) não suporta httpd -k gracefulapenas httpd -k restart: httpd /?=>-k restart : tell running Apache to do a graceful restart
Andreas Dietrich
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.