времена запуска launchd, кажется, ползут позже и позже

173
Victor Engel

Я новичок в launchd, так что возможно я сделал что-то неправильно. У меня есть сценарий, который я собираюсь запустить ежечасно. Для этого я создал файл plist со следующей записью, чтобы это произошло:

<key>StartInterval</key> <integer>3600</integer> 

Он работает примерно ежечасно, но он работает примерно так, как если бы интервал времени был от полного времени одного экземпляра до времени начала следующего. Я говорю это, потому что время начала становится стабильно позже. Вот список:

Aug 30 21:00:43 2016 2016083021  Aug 30 22:00:45 2016 2016083022  Aug 30 23:00:49 2016 2016083023 Aug 31 00:00:51 2016 2016083100 Aug 31 01:00:53 2016 2016083101 Aug 31 02:00:54 2016 2016083102 Aug 31 03:00:56 2016 2016083103  Aug 31 04:00:57 2016 2016083104 Aug 31 05:00:58 2016 2016083105 Aug 31 06:01:00 2016 2016083106 Aug 31 07:01:02 2016 2016083107 Aug 31 08:01:06 2016 2016083108 Aug 31 09:01:11 2016 2016083109 Aug 31 10:01:17 2016 2016083110 Aug 31 11:01:22 2016 2016083111 Aug 31 12:01:27 2016 2016083112 Aug 31 13:01:32 2016 2016083113 Aug 31 14:01:38 2016 2016083114 Aug 31 15:01:43 2016 2016083115 Aug 31 16:01:51 2016 2016083116 Aug 31 17:01:56 2016 2016083117 Aug 31 18:02:02 2016 2016083118 

Это известная особенность launchd? Должен ли я установить свой стартовый интервал по-другому?

0
Что ж, после осмотра, похоже, что я действительно должен использовать StartCalendarInterval вместо StartInterval. Victor Engel 7 лет назад 0

1 ответ на вопрос

1
Victor Engel

StartInterval повторяется примерно в указанное количество секунд. StartCalendarIntervalповторяется в указанное время календаря / часов.

Вот что я использовал:

<key>StartCalendarInterval</key> <array> <dict> <key>Minute</key> <integer>0</integer> </dict> </array> 

Все еще есть некоторая случайная задержка, но она происходит после указанного времени, а не после истекшего периода, поэтому она не становится постепенно увеличивающейся позже.

Sep 1 21:00:08 2016 2016090121 Sep 1 22:00:04 2016 2016090122 Sep 1 23:00:04 2016 2016090123 Sep 2 00:00:02 2016 2016090200 Sep 2 01:00:06 2016 2016090201 Sep 2 02:00:08 2016 2016090202 Sep 2 03:00:02 2016 2016090203 Sep 2 04:00:06 2016 2016090204 Sep 2 05:00:02 2016 2016090205 Sep 2 06:00:02 2016 2016090206 Sep 2 07:00:07 2016 2016090207 Sep 2 08:00:03 2016 2016090208 Sep 2 09:00:04 2016 2016090209 Sep 2 10:00:09 2016 2016090210 Sep 2 11:00:11 2016 2016090211 Sep 2 12:00:11 2016 2016090212 Sep 2 13:00:08 2016 2016090213 Sep 2 14:00:10 2016 2016090214 Sep 2 15:00:10 2016 2016090215 Sep 2 16:00:11 2016 2016090216 Sep 2 17:00:11 2016 2016090217 Sep 2 18:00:14 2016 2016090218 Sep 2 19:00:09 2016 2016090219 Sep 2 20:00:07 2016 2016090220