Назад | Перейти на главную страницу

Что лучше: использовать Restart & RestartSec служебного модуля systemd или использовать модуль таймера systemd?

У меня есть несколько собственных автоматизированных скриптов, которые периодически запускаются. Один каждые пять минут, другой каждую минуту. Их действительно не нужно запускать на месте; например Меня не волнует, будут ли они работать в 12:00, 12:05 и т. Д. Или в 12:03, 12:08 и т. Д., Мне просто нужен постоянный интервал.

В настоящее время я использую crontab для запуска этих сценариев с заданными интервалами. Однако на той же машине у меня также есть собственные файлы служебных модулей systemd. Мне было любопытно, лучше ли переместить мои скрипты в файлы служебных модулей и таймеров systemd или просто использовать файлы служебных модулей systemd с директивами Restart и RestartSec.

Дайте мне знать, если мне нужно что-то перефразировать или я не понимаю.

В частности, определение systemd.service единицы переводит Restart=always и RestartSec=300 будет синонимом «всегда запускать каждые пять минут, игнорируя код выхода предыдущего запуска». Однако есть также systemd.timer unit которые можно настроить на то же самое, но, вероятно, с конкретными кодами выхода, такими как только успешный выход.

Я ищу плюсы и минусы обоих.

Спасибо!

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

  • Используйте таймеры для расписаний, о которых вы говорите.
  • Используйте операторы перезапуска, чтобы указать политику перезапуска задачи, которая завершается неожиданно. Это означает, что вы даже можете определить политику перезапуска для своих таймеров в случае их сбоя. Имейте в виду, что при перезапуске блоки быстро переходят в состояние отказа, потому что они быстро достигают тайм-аута задержки, если вы не определите RestartSec больше 1.