К основному контенту

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

Иногда сервисы ни с того ни с сего падают и приходиться их вручную восстанавливать. Если для пользователя домашнего компьютера это не критично, потому что как упало так и поднимем, но вот на серверах это может вызвать серьезные затруднения, ведь не всегда есть возможность зайти на сервер удаленно и перезапустить сломленный сервис.

В этой инструкции я покажу как настроить автоматический перезапуск сервиса в Linux несколькими способами: с помощью скрипта мониторинга периодически запускаемого через cron и набора утилит для управления демонами daemontools.  Пожалуй начнем с последнего. Автоматический перезапуск сервиса через deamontools

Daemontools - это набор утилит для управления и мониторинга состояния сервисов в Linux. Основной важной для нас особенностью Daemontools есть возможность автоматически перезапускать сервисы при их падении. Также Daemontools поддерживает ротацию логов, но об этом уже не в этой статье.

Для большинства популярных дистрибутивов есть готовые установочные пакеты в их официальных репозиториях.

Для установки в Ubuntu, Debian, Linux Mint выполните:

sudo apt-get install daemontools

Для Fedora и RHEL команда установки будет выглядеть следующим образом:

sudo yum install daemontools

А для Gentoo:

sudo emerge daemontools

Пользователи ArchLinux могут найти соответствующий пакет в AUR.

Теперь необходимо добавить daemontools в автозагрузку. Сделать это можно добавив следующую команду в конец rc.local:

sudo nano /etc/rc.local

 svscanboot &

Программа svscanboot запускает и контролирует другие утилиты для управления демонами, если хотите более подробную информацию смотрите на опеннете.

Для управления демонами в Linux Deamontools создает папку /service, все сервисы описанные в этой папке автоматически запускаются при запуске daemontools. Каждый демон должен иметь свой подкаталог и в нем скрипт запуска с названием run.

Теперь рассмотрим создание скриптов для daemontools. Они ничем не отличаются от обычных скриптов linux. Рассмотрим все на примере запуска и мониторинга сервиса apache.

Сначала создайте подкаталог в папке /service:

mkdir /service/apache

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

nano /etc/service/apache/run

/bin/bash

/usr/sbin/apache2 -D DEFAULT_VHOST -D INFO -D SSL -D SSL_DEFAULT_VHOST -D LANGUAGE -D PHP5 -d /usr/lib64/apache2 -f /etc/apache2/httpd.conf -k start

У меня Apache запускается такой командой, но у вас может быть по другому. После сохранения сделайте скрипт исполняемым:

sudo chmod ugo+x /service/apache/run

Далее нужно перезагрузить систему, и можно проверять работоспособность. Найдем список процессов сервиса с помощью ps:

ps aux | grep apache

Уничтожим все утилитой kill:

sudo kill -9

Опять смотрим список процессов и видим что все на месте:

ps aux | grep apache Автоматический перезапуск сервиса с помощью скрипта

Это самый простой и самый надежный способ работающий абсолютно во всех дистрибутивах linux и не требующий установки дополнительных утилит. Для того же Apache скрипт выглядит следующим образом:

!/bin/bash

ps -A | grep apache || /etc/init.d/apache start

Сохраните файл, сделайте его исполняемым:

chmod ugo+x ~/path/to/script

Теперь добавьте запись в cron для периодического запуска скрипта:

 crontab -e

*/5 * * * * /path/to/script

Осталось перезапустить cron:

sudo /etc/init.d/cron restart

На этом все, желаю долгих аптаймов вашим Linux серверам и пусть ваши сервисы никогда не падают.

Комментарии


Дистанционная компьтерная помощь, удаленная компьютерная помощь онлайн.

Популярные сообщения из этого блога

Лучшие плагины для OBS Studio

Open Broadcast Software или OBS - это свободное программное обеспечение с открытым исходным кодом для стриминга аудио и видео данных в сеть интернет. Программа полностью кроссплатформенная и может работать в Windows, Linux или MacOS. Это отличная альтернатива для таких программ, как Wirecast и XSplit. OBS использует для вещания стандартный протокол обмена сообщениями в реальном времени, а поэтому может транслировать данные в любой сервис, поддерживающий это, например, Yotube. Несмотря на широкие возможности OBS, программа поддерживает еще и множество плагинов. В этой статье мы рассмотрим лучшие плагины для OBS Studio, которые вы можете использовать. Содержание статьи: Лучшие плагины OBS Studio 1. Browser Source Plugin 2. Video Source Plugin 3. Simple Scene Switcher 4. DirectShow Audio Source 5. CLR Browser Source 6. OBS Remote 7. AMD Advanced Media Framework Encoder 8. Text Source Plugin Выводы Лучшие плагины OBS Studio Чтобы найти плагины OBS Studio для Video пользователям пр…

Лучшие аналоги Paint для Linux

Когда я работал в Windows, я часто использовал стандартную программу редактора изображений Windows - Paint. Не всегда нужен очень и многофункциональный инструмент вроде Photoshop или Gimp. Иногда, чтобы подправить ту или иную картинку, дорисовать на ней несколько фигур или вставить текст достаточно простого, легкого в освоении графического редактора вроде Paint. В Linux таких программ довольно много. В этой инструкции мы рассмотрим лучшие аналоги Paint для Linux. В этот список не будут включены такие программы, как Gimp и Krita, ведь это полнофункциональные графические редакторы, векторные редакторы, такие как Inkscape мы тоже рассматривать не будем. А теперь перейдем к списку. Содержание статьи: KolourPaint MyPaint Gnome Paint XPaint Pinta mtPaint GPaint Rassam-paint Выводы KolourPaint На первом месте в списке аналогов Piant для Linux будет KoloutPaint. Это стандартный графический редактор для окружения рабочего стола KDE. Он поддерживает множество форматов изображений PNG, J…

Подключение OneDrive в Linux

OneDrive (Ранее известный как SkyDrive) это популярное облачное хранилище файлов от Майкрософт. Сейчас OneDrive бесплатно предоставляет 7 гигабайт пространства новым пользователям. Как вы знаете OneDrive хорошо интегрирован с другими продуктами компании  Microsoft. В OneDrive Также есть официальный клиент который автоматически загружает ваши видео и фотографии с камеры в облако. Но к сожалению этот клиент недоступен для операционных систем семейства Linux. Но не все так плохо. Сообщество открытого программного обеспечения уже нашло решение. Это opedrive-d от Boilermaker. Запустившись как демон программа автоматически синхронизирует локальную папку с облаком OneDrive. Содержание статьи: Установка Onedrive-d в Linux Настройка Синхронизация локальной папки с OneDrive Установка Onedrive-d в Linux Несмотря на то что onedrive-d разрабатывается для Ubuntu/Debian, CentOs/Fedora/RHEL поддерживается тоже хорошо. Для установки достаточно набрать несколько команд: $ git clone https://gith…