OSX como mostrar o status do apache no terminal?

8

Eu notei que no meu servidor linux quando eu digito o apachectl restart ele me fornece um feedback pequeno, mas útil, como restarting e, em seguida, [ok] ou [fail] no final da linha. Não muito, mas pelo menos eu sei o que está acontecendo, e posso verificar os registros.

No meu OS X, não recebo nada. apenas a próxima linha imediatamente:

sh-3.2# /usr/sbin/apachectl stop   
sh-3.2# /usr/sbin/apachectl start
sh-3.2# 

Como posso ativar esses recursos de 'depuração'?

    
por mgPePe 05.08.2011 / 11:02

4 respostas

5

Como no script wrapper do apachectl você coloca algo assim no final.

tail -5 /var/log/httpd/error_log

você deve ver algo assim em uma inicialização normal

  • [Sex Abr 22 23:39:20 2011] [notice] Resumo: gerando segredo para a
    Digerir autenticação ...
  • [sex abr 22 23:39:20 2011] [notice] resumo: concluído
  • [Fri Apr 22 23:39:20 2011] [advertir] arquivo pid
    /mlk/apache/pid/httpd.pid sobrescrito - Desligamento não limpo do anterior Apache executado?
  • [Sex Abr 22 23:39:20 2011] [notice] Apache / 2.0.63 (Unix) DAV / 2 configurado - retomando as operações normais

Caso contrário, qualquer erro deve, pelo menos em parte, ser mostrado aqui. A frase chave está em destaque acima.

Adicional: / usr / sbin / apachectl é de propriedade de root, você deve ser um usuário privilegiado para fazer isso. sudo vi / usr / sbin / apachectl

mova para o final do arquivo e insira-o entre as linhas "esac" e "exit $ ERROR". ou seja,

esac
sleep 2; tail -5 /var/log/httpd/error_log
exit $ERROR

Observe que isso imprimirá as últimas linhas, independentemente da ação que você fizer com o script, pare de iniciar e reinicie. você pode querer apenas colocá-lo na parte inicial do caso.

    
por 05.08.2011 / 14:24
28

Eu tenho o mesmo problema no meu mac. Sempre que tento iniciar o apache e nada acontece, imediatamente executo este comando. No meu caso, o problema parece estar sempre nos arquivos de configuração do apache.

apachectl configtest
    
por 20.12.2012 / 20:37
7

apachectl no Mac é um wrapper em torno de alguns comandos launchctl (basta examinar o arquivo). Infelizmente, o launchctl não sai com um código de erro quando algo está errado ao iniciar o httpd , então o script não tem uma maneira fácil de mostrar nada, mesmo se ele tentar.

Uma verificação básica que você pode realizar é verificar a existência de processos do Apache após o comando apachectl start .

ps aux | grep httpd
    
por 05.08.2011 / 12:21
0

No comando macOS com netstat , exiba toda a conexão de rede. Você pode filtrar apenas conexões 'listen' e ver os http (s) servers.

Você pode criar um arquivo bash com este código:

status="$(netstat -at | grep LISTEN | grep *.http)"
count="$(echo "${status}" | grep -Ev "^$" | wc -l)"

if [ ${count} -eq 0 ] ; then
    echo " Apache server is not running"
fi   

echo "${status}" | 
while IFS= read -r line
do
    echo " ${line}"
done

Resultado quando o servidor for parado sudo apachectl -k stop será:

Apache server is not running

Resultado quando o servidor está rodando sudo apachectl -k stop será:

tcp46      0      0  *.https                *.*                    LISTEN     
tcp46      0      0  *.http                 *.*                    LISTEN     

Neste exemplo, tenho dois servidores em execução, um com https e outro com http.

    
por 12.04.2017 / 00:27