Добавление однократного запуска системного таймера
У меня есть системный таймер, который запускается в 23:00 по пятницам, чтобы выполнять пакетную обработку данных раз в неделю в периоды низкого спроса. Сегодня вторник, и я хотел бы протестировать внесенное мной изменение. Я хотел бы, чтобы оно началось сегодня в 23:00, чтобы я мог проверить его завтра, а не ждать до следующего понедельника.
Есть ли простой и встроенный способ запланировать однократный запуск таймера systemd? напримерsystemd trigger-timer --timer whatever.timer --at 2021-06-22T23:00
или что-то? Я хочу, чтобы оно началось только в это время, я не хочу добавлять новое повторяющееся правило. Я хочу, чтобы он работал как обычно каждую пятницу в 23:00 и сегодня в 23:00.
Я уверен, что смогу взломать что-нибудь вместе сsleep 10hr ; systemctl start whatever.service
или, возможно, вручную отредактируйте/etc/systemd/system/whatever.timer
файл, но если есть правильный способ запускать таймер «однократно», я бы предпочел использовать его.
Это в Ubuntu Linux 20.04 и 18.04, какая бы версия systemd ни была (245?)
2 ответа
Одноразовый запуск таймера не является таймером, и одноразовый запуск службы может быть достигнут с помощьюat
или с помощью cron.
at 23:00 <<<"systemctl start example.service"
будет вполне эквивалентно тому, что вы ищете.
Вы можете добавить
OnCalendar=2021-06-22T23:00
в файл вашего таймера. Затем удалите его после того, как закончите. Или, если вы просто хотите запустить службу, вы можете сделать:
systemd-run --on-calendar=2021-06-22T23:00 systemctl start example.service