Como verificar se o servidor embutido php está rodando

1

Versões recentes do PHP tem um servidor web embutido (para ambientes que não são de produção) que pode ser iniciado com php -S [...] .

Como posso verificar se ele já está em execução no servidor antes de tentar iniciá-lo?

Eu percebo que o jeito hacky seria tentar iniciá-lo e olhar para a mensagem de erro Failed to listen on [...] , mas eu pensei que poderia haver uma maneira mais clara: -)

EDITAR: Esqueci de mencionar que, em última análise, gostaria de poder verificar isso em um script e só iniciar o servidor se ele ainda não tiver sido iniciado. Também esqueci de mencionar que estou procurando uma solução para o Linux, mas as soluções do Windows também são bem-vindas, no caso de alguém estar procurando por ele um dia: -)

    
por jgivoni 23.01.2016 / 15:37

2 respostas

2

Como minha edição da resposta de Paolo foi rejeitada, veja uma resposta mais completa:

ps aux | grep php

Este comando produzirá algo como o seguinte se o php estiver sendo executado:

pi        3245  0.0  0.5  21400  2416 pts/0    S    Jan29   0:02 php -S localhost:8000 -t /path/to/php/docroot
pi        3518  0.0  0.3   5220  1712 pts/0    S+   00:42   0:00 grep --color=auto php

A segunda linha pode ser ignorada, pois é apenas auto-referência do comando de busca. Este script irá verificar se o servidor está sendo executado e iniciá-lo se não estiver:

if ! ps aux | grep -v grep | grep -qs 'php -S localhost:8000';
then
  php -S localhost:8000 -t /path/to/php/docroot &>/dev/null &
fi
    
por 30.01.2016 / 00:46
2

Como Michael Hampton já sugeriu, um comando como ps aux | grep php irá revelar se o servidor web do PHP já está ativo.

    
por 23.01.2016 / 15:49