Помогите с timer'ом

Хочу сделать признание, что был не прав в рассуждениях с использованием OnBootSec, нужно уметь признавать свои ошибки.
Что то меня заклинило, совсем выскочило из головы, что компьютер работает не вечно, а еще и выключается.
Ошибки не исчезают с опытом - они просто умнеют
Ну что ж, перейдём к более простому случаю.
Как сделать, чтобы сервис запускался раз в 5 минут ;) С загрузки системы, без напоминаний и пинков ;)

$ cat /etc/systemd/system/usgs-feed.timer
[Unit]
Description=Periodically check USGS feed

[Timer]
OnUnitActiveSec=5min
Persistent=true
AccuracySec=1

[Install]
WantedBy=timers.target

$ sudo systemctl status usgs-feed.timer
● usgs-feed.timer - Periodically check USGS feed
   Loaded: loaded (/etc/systemd/system/usgs-feed.timer; enabled; vendor preset: disabled)
   Active: active (elapsed) since Wed 2018-12-05 19:04:54 MSK; 21h ago
  Trigger: n/a

Dec 05 19:04:54 ocean systemd[1]: Started Periodically check USGS feed.

n/a                          n/a                 Wed 2018-12-05 18:54:54 MSK  21h ago    usgs-feed.timer              usgs-feed.service

После перезагрузки не запускает ;)
такие дела.
на вскидку

Persistent=true
Persistent=
Takes a boolean argument. If true, the time when the service unit was last triggered is stored on disk. When the timer is activated, the service unit is triggered immediately if it would have been triggered at least once during the time when the timer was inactive. This is useful to catch up on missed runs of the service when the machine was off. Note that this setting only has an effect on timers configured with OnCalendar=. Defaults to false.

AccuracySec=1
1 чего ? возможно и прокатывает но лучше сразу уточнять как минимум для себя, а то со временем забудешь.
по умолчанию установлено в 1 минуту, для большей точности можно выставить в 1s или на максимум 1us.

скорее всего нужно еще добавить параметр OnBootSec:
OnBootSec=5min
ну или установить значение поменьше, например 1s после старта
red
1 чего ?
Если просто число, то подразумевается секунда (см ман). Проверено. Проблема не в этом.

red
скорее всего нужно еще добавить параметр OnBootSec
Из мана не следует, что OnBootSec необходим для запуска таймера! Мне нужен OnBootSec=0.

P.S. Раньше работало при одновременном
OnUnitActiveSec=5min
OnActiveSec=5min
но это кажется туповатым слегка.
Что-то эти таймеры слегка чудные или ман плохо написан...
такие дела.
cucullus
Мне нужен OnBootSec=0
из этого мана много чего не следует. нужен 0 так и напишите 1sec))
Ошибки в тексте-неповторимый стиль автора©
indeviral
нужен 0 так и напишите 1sec))
тогда уж лучше 1us )
Подскажите по таймеру что то не могу понять его работу.
Создал таймер
[Unit]
Description=test timer

[Timer]
OnBootSec=1min
OnUnitActiveSec=1min

[Install]
WantedBy=timers.target

Таймер активирует сервис, а сервис скрипт, который пишет в файл данные.
По идее стартовать таймер должен по истечении 1 минуты после загрузки, а потом запускаться каждую минуту.

Но временные интервалы, через которые запускается таймер минуте не соответствую.
Вывод файла в который пишутся данные - pastebin
dima81
минуте не соответствую.
"Где-то так: семь-восемь..." )

Нужна точно минута - добавьте в секцию [Timer]:
AccuracySec=1s
Лишняя минута в таймере
red, это не лишняя минута, точность таймера, которая по дефолту равна одной минуте. man systemd.timer:
AccuracySec=
Specify the accuracy the timer shall elapse with. Defaults to 1min.
Within this time window, the expiry time will be placed at a host-specific,
randomized, but stable position that is synchronized between all local timer units.


red
просто им по умолчанию стоило бы поставить минимальную задержку, а кому надо тот пусть ставит больше.
Из того же мана:
This is done in order to optimize power
consumption to suppress unnecessary CPU wake-ups. To get best accuracy, set this option to 1us.


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