У меня есть mybackups.service
и mybackups.timer
. Я бы хотел, чтобы у mybackups.service
был только один работающий экземпляр. То есть я хочу, чтобы произошло следующее:
Случай 1: таймер уже mybackups.service
Если по какой-то причине я запускаю резервное копирование вручную, $ systemctl start mybackups.service
Я хочу, чтобы systemctl сказал «Пропуск, уже запущен»
Случай 2: я вручную mybackups.service
Когда mybackups.timer
пытается запустить свой сервис по расписанию, я бы хотел, чтобы он был остановлен с помощью systemd с некоторой зарегистрированной ошибкой, например: mybackups.service was already in progress
Случай 3: длительное обслуживание
Очевидно, что я надеюсь исправить такое засорение, но если по какой-то причине mybackups.service
будет работать очень долго, я надеюсь, что следующий старт mybackups.timer
получит то же лечение, что и в случае № 2 (то есть: I ' надеюсь, что он не запустится * другой * сервис запускается)
Т.Л., д - р я мог (и у меня) изменить основную программу , которая mybackups.service
начинает просто выйти , когда он находит старый PID файл и все еще живой PID где - то. Однако это такая общая проблема, которую я ожидаю [2] и надеюсь, что у systemd есть варианты для этого.
[2]: например, systemd уже отслеживает все PID-дерево своих сервисов, и кажется, что это идеальный кандидат, чтобы сделать это правильно для вас.