Eu costumava resolver exatamente esse problema para os servidores do meu jogo, escrevendo um daemon perl que possuía e controlava servidores de jogos, e respondia a um serviço da web para o mundo externo. Simplificando, mas eficaz.
Meu servidor de jogos tem uma interface de administração PHP personalizada, que pode executar o servidor manualmente executando o script shell inicial com exec
e sudo -E
. No entanto, se eu reiniciar o httpd usando service httpd restart
, o script e o servidor do jogo também serão mortos. Como posso alterar esse comportamento para que apenas o servidor web seja eliminado ou executar o servidor do jogo de outra maneira?
Eu costumava resolver exatamente esse problema para os servidores do meu jogo, escrevendo um daemon perl que possuía e controlava servidores de jogos, e respondia a um serviço da web para o mundo externo. Simplificando, mas eficaz.
Quando você acessa a página da Web (script PHP), o conteúdo é enviado por uma instância (subprocesso) do processo do servidor httpd. Quando você reinicia o servidor httpd, o script está informando o servidor para morrer, o que matará todos os subprocessos também, incluindo a instância do PHP que está executando o próprio script. Basicamente, o script está efetivamente cometendo suicídio.
Tente usar "apachectl -k graceful" , que reinicia o servidor normalmente, o que significa que apenas o processo do servidor será reiniciado, mas as sessões atuais poderão ser concluídas. Seu roteiro não deveria morrer.
Tags php apache-httpd