Если запускаемое задание имеет StartInterval 600 и прошло «некоторое время» с момента загрузки plist.
Как определить, сколько времени осталось до следующего запланированного запуска?
Это действительно зависит от того, почему вы заботитесь (по сути, вы не должны, или, скорее всего, есть какой-то лучший способ сделать это). Все сводится к тому, что ваш сценарий умнее. Удалите файл какашка или используйте скрипт, чтобы либо отложить до следующего запуска, либо перейти в режим ожидания.
Ты не можешь Действительно, launchd даже не гарантирует интервал ровно 600 секунд, просто близко.
Лучший способ сделать что-то подобное - заставить вашу задачу launchd прикоснуться к файлу, желательно в / var / tmp
источник