Linux перезапуск службы по расписанию

Содержание
  1. Как выполнить автоматический перезапуск сервиса Linux
  2. Часто происходит спонтанное падение сервиса. Пользователю приходится заниматься их ручным восстановлением. Проблемы как таковой нет, если это происходит на домашнем компьютере. Даже больше – это хорошо, ведь появляется реальная возможность определить состояние сервиса, выявить неисправности и устранить их. Но совсем другая ситуация, когда дело касается серверов и VPS сервисов, которые должны работать постоянно для обеспечения доступа к веб-сайту или приложению. В этой статье рассмотрим способ настройки автоматического перезапуска сервиса Linux несколькими способами: с помощью скрипта мониторинга периодически запускаемого через cron и в systemd.
  3. Автоматический перезапуск в Systemd
  4. Автоматический перезапуск скриптом
  5. unixforum.org
  6. перезагрузка по расписанию
  7. перезагрузка по расписанию
  8. Re: перезагрузка по расписанию
  9. Re: перезагрузка по расписанию
  10. Re: перезагрузка по расписанию
  11. Re: перезагрузка по расписанию
  12. Re: перезагрузка по расписанию
  13. Re: перезагрузка по расписанию
  14. Как я могу запланировать перезагрузку в Linux?
  15. Как настроить Cron планировщик задач linux.
  16. Автоматический перезапуск сервиса Linux
  17. Автоматический перезапуск сервиса в systemd
  18. Автоматический перезапуск сервиса с помощью скрипта

Как выполнить автоматический перезапуск сервиса Linux

Часто происходит спонтанное падение сервиса. Пользователю приходится заниматься их ручным восстановлением. Проблемы как таковой нет, если это происходит на домашнем компьютере. Даже больше – это хорошо, ведь появляется реальная возможность определить состояние сервиса, выявить неисправности и устранить их. Но совсем другая ситуация, когда дело касается серверов и VPS сервисов, которые должны работать постоянно для обеспечения доступа к веб-сайту или приложению. В этой статье рассмотрим способ настройки автоматического перезапуска сервиса Linux несколькими способами: с помощью скрипта мониторинга периодически запускаемого через cron и в systemd.

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

По умолчанию выставлено, что в случае падения сервиса Systemd ничего с ним не будет делать. Но пользователь всегда может выстроить настройки таким образом, чтобы в случае падения или остановки сервис автоматически перезапускался. Для этого используется директива Restart, которую надо добавить в секцию Service. Дальше рассмотрим пример настройки автоматического перезапуска сервиса Apache:

Здесь RestartSec указывает, сколько ждать перед перезапуском сервиса. Когда завершите работу, сохраните изменения и выполните команду daemon-reload, чтобы перечитать конфигурацию:

Дальше, чтобы проверить все ли работает исправно, посмотрите состояние процесса, завершите процесс сигналом kill:

$ sudo systemctl status apache2

Еще раз посмотрите состояние, процесс должен быть запущен. Для установки запуска инициализации каждый раз, используйте специальную директиву Restart: always. Но пользоваться ею необходимо крайне осторожно, ведь она не позволит завершить процесс, даже если в этом возникнет необходимость. Если процесс постоянно падает, чтобы он перезапускался, можно добавить лимит на количество перезапусков в секцию Service:

Здесь StartLimitBurst и StartLimitIntervalSec указывают на важность перезапуска сервиса пять раз, и если он все эти пять раз упадёт, то оставить его и не трогать. Вторая директива ограничивает время перезапусков сервиса до 500 секунд.

Читайте также:  Компьютер для windows 10 сборка

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

Пожалуй, самый надежный и безотказный способ, работающий во всех версиях Linux. В том же Apache легко выстроить автоматический перезапуск при помощи скрипта. Для этого необходимо ввести команду:

ps -A | grep apache2 || systemctl start apache2

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

chmod ugo+x /usr/local/bin/apache-monitor.sh

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

На этом все. Да, настроить автоматический перезапуск сервиса не так просто, как может показаться на первый взгляд. Но это важная способность, поэтому ей необходимо уделить внимание – оно того определенно стоит.

Источник

unixforum.org

Форум для пользователей UNIX-подобных систем

  • Темы без ответов
  • Активные темы
  • Поиск
  • Статус форума

перезагрузка по расписанию

Модератор: SLEDopit

перезагрузка по расписанию

Сообщение andrsyash » 09.03.2006 10:49

Подскажите пожалуйста, уважаемые спецы, можно ли выполнять перезагрузку по расписанию (cron)

Re: перезагрузка по расписанию

Подскажите пожалуйста, уважаемые спецы, можно ли выполнять перезагрузку по расписанию (cron)

Re: перезагрузка по расписанию

Сообщение rolano » 09.03.2006 11:19

Re: перезагрузка по расписанию

Сообщение andrsyash » 09.03.2006 12:11

Re: перезагрузка по расписанию

Сообщение shark3D » 09.03.2006 15:15

Re: перезагрузка по расписанию

Сообщение grub » 10.03.2006 16:05

Подскажите пожалуйста, уважаемые спецы, можно ли выполнять перезагрузку по расписанию (cron)

сначала говоришь crontab -e
потом в открывшемся редакторе пишешь что-то вроде:
10 13 * * * reboot

это значит что в 10 минут 13 часов любого дня любого месяца каждой недели будет выполняться команда reboot

Re: перезагрузка по расписанию

Сообщение vg2.0 » 10.03.2006 16:21

chmod 755 reboot

2. правим /var/cron/tab/root
там 5 полей:
m — минуты
h — часы
dm — день месяца
m — месяц
dw — день недели
данее идет путь до файла

Ну еще можно перезапустить cron, хотя это не обязательно
cd /etc/rc.d
./cron restart

Источник

Как я могу запланировать перезагрузку в Linux?

Я новичок в Linux и хочу запланировать перезагрузку в полночь. как мне это сделать?

Редактирование:

Извините, я не поставил полную информацию. Я хочу перезагрузить каждую третью субботу месяца в 23:30.

Я не знаю, что не так, но я не могу найти crontab. Что у меня есть cron.d ; cron.daily ; cron.weekly ; cron.monthly ;

Я извиняюсь за вопрос нуба. Пожалуйста, помогите мне. Спасибо.

Типа shutdown -r 0:00 и он перезагрузится в полночь.

Если вы хотите перезагружаться каждую ночь, добавьте запись cron, используя crontab -e в качестве пользователя root, чтобы запускать shutdown -r каждую полночь

Добавление этой записи в / etc / crontab должно сделать:

Другой вариант — команда at , доступная во многих дистрибутивах Linux. Смотрите man-страницу для получения дополнительной информации, но общий синтаксис для вашей цели:

эхо «перезагрузка» | в 00:00 27 июня

Цитировать справочную страницу OS X:

atвыполняет команды в указанное время

Звучит так, как мы говорим. 😉

Читайте также:  Как убрать пузыри с экрана компьютера windows

Насколько я знаю, вы не можете использовать cron для планирования задач на «последнюю пятницу каждого месяца» или «третий четверг каждого месяца». Что вы можете сделать, каким бы уродливым это ни казалось, — запускать каждую субботу в 23:30 сценарий, а затем этот сценарий определять, является ли данная суббота третьей субботой недели (это можно сделать с помощью команд date и, возможно, cal). ,

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

1) в командной строке введите 2) как только вы узнаете, где находится перезагрузка (обычно / sbin / reboot), перейдите в один из каталогов в /etc/cron.daily, /etc/cron.weekly, / etc / cron. почасово и т. д. which reboot
cd /etc/cron.weekly

3) создайте файл (используя nano или vim), назовите его zzreboot и добавьте следующие строки:

#! / bin / sh
/ sbin / reboot

Причина, по которой вы хотите назвать файл zz, заключается в том, чтобы убедиться, что это последнее задание, вызванное после всех остальных заданий. Чтобы убедиться, что просто сделайте ls -l в каталоге и убедитесь, что это последний файл.

Источник

Как настроить Cron планировщик задач linux.

Cron самый популярный планировщик задач в Linux системах.
Каждый администратор Linux так или иначе прибегает к работе с cron, будеь это перезапуск какого-нибудь сервиса в определенное время или например запуск скрипта ежедневный.

Нам нужно добавить задачу в Cron,но для начала мы можем увидеть какие текущие задачи в нем есть командой:

Если мы получаем подобный ответ:

Что же делать.
Это значит у нас не установлен cron, что мы легко исправим следующими командами:

Install Crontab для Centos:

Install Crontab для Ubuntu/Debian:

Закончили установку.
Для примера будем придумывать себе задания, которые попробуем решить с помощью планировщика заданий Cron.
Также на понадобится конкретное действие , которые мы будем исполнять, например:
1. команду service nginx restart, которая перезапускает службу веб-сервера nginx.
2. запуск скрипта /scripts/script-ithelp21.sh

Начнем с того, что есть два варианта добавления заданий в cron:
1. Через редактирование файла /etc/crontab
2. Через команду crontab -etc/crontab -etc/crontab

Открываем редактор cron командой:
crontab -e

Задания добавляются в виде строк:

перезагружает веб-сервер и запускает скрипт каждую минуту.

Слева направо ознакомимся с значением *, которые она может принимать.
Каждая звездочка это возможное место для цифры:

И на основе данной информации пройдемся по возможным примерам.

#Как запустить команду с одинаковым промежутком времени.

#В данном примере сервис nginx будет перезапуск каждые 5 минут, а скрипт запускается в 42 минуты каждого часа.

#Как запустить команду в определенное время.

Nginx будет перезапуск ежедневно ровно в 2 часа ночи, а скрипт запускаться будет каждую среду в 16-30.

Читайте также:  Различия windows 10 2004

#Перезапускаем веб-сервер в 2 часа 5 минут каждое 15 число месяца.

#Запускаем скрипт с понедельника по пятницу в 15-00:

#Запускаем скрипт каждые три часа в 0 минут

Есть еще вариант использовать немного другой формат планировщика задач в виде:

Например, команды будут выполнять одинаковый функционал:

Источник

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

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

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

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

По умолчанию, если ваш сервис будет убит или завершится некорректно, systemd не будет с ним ничего делать. Но можно настроить сервис так, чтобы при падении или даже остановке он автоматически перезапускался. Для этого используется директива Restart, которую надо добавить в секцию Service. Например, рассмотрим настройку автоматического перезапуска сервиса Apache:

sudo systemctl edit apache2

[Service]
Restart=on-failure
RestartSec=5s

Директива RestartSec указывает сколько ждать перед перезапуском сервиса. Когда завершите сохраните изменения и выполните команду daemon-reload, чтобы перечитать конфигурацию:

sudo systemctl daemon-reload

Затем чтобы проверить что всё работает посмотрите состояние процесса, завершите процесс сигналом kill:

sudo systemctl status apache2
kill -KILL 32091

И снова посмотрите состояние. Процесс будет запущен. Система инициализации автоматически перезапустит его как только он завершится с кодом возврата ошибки. Если вы хотите чтобы процесс перезапускался всегда, необходимо использовать директиву Restart: always. Однако с ней надо быть осторожным, она вовсе не даст вам завершить процесс, даже если будет необходимо. Для того, чтобы процесс, который постоянно падает не перезапускался, можно добавить лимит на количество перезапусков в секцию Service:

sudo systemctl edit apache2

[Service]
StartLimitIntervalSec=500
StartLimitBurst=5
Restart=on-failure
RestartSec=5s

Директивы StartLimitBurst и StartLimitIntervalSec указывают, что надо попытаться перезапустить сервис пять раз, и если он все эти пять раз упадёт, то больше его не трогать. Вторая директива ограничивает время перезапусков сервиса до 500 секунд.

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

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

sudo vi /usr/local/bin/apache-monitor.sh

#!/bin/bash
ps -A | grep apache2 || systemctl start apache2

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

chmod ugo+x /usr/local/bin/apache-monitor.sh

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

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

Источник

Оцените статью