Auto restart Apache quando o processo “morre”

Aqui está um shell script simples para ser usado no CentOS / Red Hat / Debian etc. Esse script funciona em outros sistemas operacionais com poucas modificações.

Copie o código do script abaixo e cole num arquivo, podendo ser chamado /usr/local/bin/httpdcheck.

Após isso, edite o crontab para rodar a cada 5 minutos

*/5 * * * * /usr/local/bin/httpdcheck >/dev/null 2>&1

Abaixo está o script, após editá-lo no arquivo, não esqueça de dar permissão de execução para o arquivo com chmod 755 /usr/local/bin/httpdcheck

#!/bin/bash

# Comente se está usando Debian
RESTART="/sbin/service httpd restart"

# Descomente se está usando Debian / Ubuntu Linux
#RESTART="/etc/init.d/apache2 restart"

#path do comando pgrep
PGREP="/usr/bin/pgrep"

# Nome do processo do Apache
# RHEL/CentOS/Fedora é httpd
# Debian 4.x é apache2
HTTPD="httpd"

# httpd pid
$PGREP ${HTTPD}

if [ $? -ne 0 ] # se o apache não está rodando
then
 # restart apache
 $RESTART
fi
Be Sociable, Share!

Tópicos relacionados

 banner ad


4 Responses to “Auto restart Apache quando o processo “morre””

  1. Boa dica :)

    Eu costumo usar o daemontools do quando preciso “gerenciar” um processo, se ele caior o daemontools já se encarrega de subi-lo novamente.

    abraço

  2. William Nogueira BRAZIL says:

    Olá, gostei muito da idéia desse script.

    Queria saber como faço pra adicionar ele na contrab, não entendi quando você disse pra colocar ele na crontab.

    • Oi William,

      Pra colocar o script na crontab, com o comando

      crontab -e

      você entra no modo de edição da cron do usuário que você está logado, esse script tem que rodar como root, aí você executa o comando “crontab -e” como root.

      E no modo de edição, você cola a linha do cron que está no começo do post.

      Pra sair, é como um comando do ‘vi’

      <ESC>:wq!

      Pronto.

      • Outra opção para adição do script no cron

        Como root:

        echo “*/5 * * * * /usr/local/bin/httpdcheck >/dev/null 2>&1″ >> /var/spool/cron/root ; /etc/init.d/crond restart

        Abraço,

Leave a Reply