Добавление однократного запуска системного таймера

У меня есть системный таймер, который запускается в 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
Другие вопросы по тегам