Launchd Startzeiten scheinen später und später zu kriechen

285
Victor Engel

Ich bin neu im Start, also ist es möglich, dass ich etwas falsch gemacht habe. Ich habe ein Skript, das ich stündlich ausführen möchte. Zu diesem Zweck habe ich eine Plist-Datei mit dem folgenden Eintrag erstellt, um dies zu ermöglichen:

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

Es läuft ungefähr stündlich, aber es ist so, als würde das Zeitintervall von der vollständigen Zeit einer Instanz bis zur Startzeit der nächsten sein. Ich sage das, weil die Startzeiten später stetig werden. Hier ist eine Auflistung:

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 

Ist das ein bekanntes Feature von launchd? Soll ich mein Startintervall anders einstellen?

0
Nun, nachdem ich mich umgesehen habe, sieht es so aus, als würde ich wirklich `StartCalendarInterval` anstelle von` StartInterval` verwenden. Victor Engel vor 7 Jahren 0

1 Antwort auf die Frage

1
Victor Engel

StartIntervalwiederholt sich in etwa der angegebenen Anzahl von Sekunden. StartCalendarIntervalwiederholt sich zum angegebenen Kalender / zur angegebenen Uhrzeit.

Folgendes habe ich am Ende verwendet:

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

Es gibt immer noch eine zufällige Verzögerung, aber es ist nach der angegebenen Zeit und nicht nach der verstrichenen Zeit, so dass es nicht nach und nach später kommt.

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