Автоматический перезапуск Apache2 при падении

Каким бы мощным и надежным не был ваш веб-сервер, при пиковой нагрузке процесс может вылететь, соответственно пользователи не смогут открыть сайт и воспользоваться им. Когда веб-сервер падает, системному администратору нужно лезть в консоль и запускать apache или nginx заново. Но не всегда есть возможность это сделать.

Для реализации автоматического перезапуска веб-сервера напишем скрипт, который будет проверять, запущен ли Apache2, и если среди запущенных процессов его нет, выполнит команду на его запуск.

Создадим директорию для хранения скриптов (если у Вас ее все еще нет):

sudo mkdir -p /opt/scripts

Теперь создаем сам скрипт:

sudo nano /opt/scripts/apache2_checker.sh

Файл скрипта будет выглядеть таким образом:

#!/bin/bash
#Задаем команду на рестарт веб-сервера
RESTART="service apache2 restart"
PGREP="/usr/bin/pgrep"
#Задаем имя процесса
HTTPD="apache2"
#Находим PID одного или нескольких процессов с названием из переменной HTTPD
$PGREP ${HTTPD}
#Проверка, если pgrep ничего не возвращает, тогда стартуем веб-сервак
if [ $? -ne 0 ]
then
 $RESTART
fi

Сохраняем скрипт и выходим из nano. Теперь нужно добавить атрибут на выполнение скрипта:

sudo chmod +x /opt/scripts/apache2_checker.sh

Теперь надо добавить задание на автоматическое выполнение этого скрипта в cron, например раз в 5 минут. Cron можно отредактировать командой:

sudo crontab -e

В конец файла нужно добавить строку:

*/5 * * * * /opt/scripts/apache2_checker.sh >/dev/null 2>&1

Останется сохранить файл, закрыть nano и перезапустить службу cron:

sudo service cron restart

Чтобы проверить работу скрипта можно запустить его вручную при выключенном, и при включенном веб сервере. В первом случае скрипт должен стартануть веб-сервер, а во втором вывести в консоль PID’ы запущенных процессов веб-сервера.

ShiftHackZ

ShiftHackZ

Автор блога LocalHost // Blog. Интересуюсь компьютерными технологиями, системным администрированием и веб-разработкой. Днями напролет провожу время за своим компьютером и самосовершенствуюсь. Подробнее

Читайте также:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *