Pular para o conteúdo

Auto restart Apache quando o processo “morre”

Avatar de DK
DKTrabalha com Linux e Unix a mais de 23 anos e possui as certificações LPI 3, RHCE, AIX e VIO.

28 set, 2009
1 min de leitura

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
Avatar de DK

Comentários

Comentários fechados para visitantes. Entre ou registre-se para comentar.

3 respostas para “Auto restart Apache quando o processo “morre””

  1. Avatar de Luciano Borguetti

    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. Avatar de DK

    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.

    1. Avatar de Luciano Borguetti

      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,

Ir para