Инструменты разработчика · Генератор Crontab
@reboot, @daily, @hourly: откуда взялись расписания ников cron
· Фон
хрон псевдонимы планирование
Сокращения @ читабельны, популярны и не универсальны. В этом посте объясняется, что каждое из них расширяет, откуда они взялись, особый случай @reboot и когда вместо этого писать пять полей.
@reboot отклонен, поскольку инструмент просматривает календарное время, а не события запуска.
`@reboot` выглядит как другие формы знака at, но в ToolAcre не имеет расширения календаря с пятью полями. Парсер отклоняет его по явной причине: нет расписания для предварительного просмотра. Событие запуска зависит от жизненного цикла компьютера или службы, который этот маршрут браузера не отслеживает и не контролирует.
Это различие позволяет сохранить честность списка следующего запуска. Псевдонимы календаря могут стать конкретными полями и датами. Псевдоним перезагрузки не может создать пять будущих кандидатов на настенные часы в текущий момент, не изобретая будущих перезапусков. Таким образом, отказ является более точным, чем пустой или сфабрикованный предварительный просмотр.
Псевдонимы и их расширения — @hourly, @daily и @midnight, @weekly, @monthly, @yearly и @annually как эквиваленты из пяти полей.
Поддерживаемая таблица является точной. `@hourly` становится `0 * * * *`; `@daily` и `@midnight` становятся `0 0 * * *`; `@weekly` становится `0 0 * * 0`; `@monthly` становится `0 0 1 * *`; и `@yearly` плюс `@annually` становятся `0 0 1 1 *`.
Пользовательский интерфейс разрешает принятый псевдоним перед копированием значений в пять отдельных полей. Анализ возвращает нормализованное выражение из пяти полей, описания используют эту проанализированную форму, а тесты перебирают каждый псевдоним. Таким образом, расширение является проверяемым, а не скрытым сокращением.
Никакое поведение запуска демона или загрузки системы не моделируется.
Ни один код по этому пути не получает события запуска операционной системы. Нет процесса демона, идентификатора загрузки или графика зависимостей служб. Заявления книги о том, когда запускается `@reboot`, не могут быть установлены анализатором, который намеренно отклоняет токен.
Если цель поддерживает псевдоним запуска, обратитесь к определению жизненного цикла этой цели и безопасно протестируйте ее. Не используйте ошибку ToolAcre как доказательство того, что эта функция универсально недействительна, и не используйте поддержку другой реализации как доказательство того, что этот маршрут должен предварительно просмотреть ее.
Происхождение псевдонимов и распространение перекрестных реализаций требуют внешних исторических источников.
В рабочей тетради псевдонимы приписывались исторической реализации и описывались их распространение. Репозиторий не содержит основного источника истории для этого утверждения. Это доказывает поведение в настоящем времени: семь ключей в `ALIASES`, поиск без учета регистра и отклонение неизвестных сокращений.
Этого достаточно для практической документации. Читатели смогут увидеть, какие именно формы здесь работают и до чего они расширяются. Провенанс можно добавить позже, используя архивный источник; его не следует выводить из постоянного имени или популярности подобного синтаксиса где-либо еще.
Рабочий пример: замена @daily на 0 0 * * * — и почему явная форма также позволяет перенести время с полуночи
Замена `@daily` на `0 0 * * *` открывает поля времени. При изменении часа с 0 на 4 получается `0 4 * * *`, который инструмент каждый день описывает как 04:00. Явная форма лучше, когда полночь не является предполагаемым временем у стены.
Поля делают эту настройку простой, а выбранный часовой пояс позволяет мгновенно просматривать данные. Скопированное выражение не содержит псевдонима после раскрытия в результате синтаксического анализа, но исходный текст может оставаться в поле всего выражения до тех пор, пока поле не будет изменено. Перед развертыванием проверьте фактическое скопированное значение.
Порядок и зависимости во время загрузки находятся вне генератора.
Работа при запуске часто зависит от файловых систем, сетей, учетных данных или других служб. ToolAcre не имеет модели зависимостей и не может оценивать готовность, задержки или поведение перезапуска. Даже если бы он принял `@reboot`, проверка выражения не решила бы эти эксплуатационные вопросы.
Относитесь к выполнению во время загрузки как к проектированию жизненного цикла, а не как к ярлыку календаря. Задокументируйте предварительные условия и обработку сбоев в целевой среде. Генератор по-прежнему подходит для повторяющихся расписаний из пяти полей, время следующих настенных часов которых действительно можно вычислить.
Альтернативы диспетчера служб здесь не оцениваются.
В рабочей книге указаны современные сервисные единицы, но в этом репозитории они не собираются и не сравниваются. Среди источников нет синтаксиса модулей, директив зависимостей или тестов запуска. Поэтому статья не рекомендует замену исключительно на основании неподдерживаемого псевдонима.
Выберите механизм жизненного цикла из целевой документации и эксплуатационных требований. Вклад ToolAcre — это отрицательная граница: `@reboot` находится за пределами области предварительного просмотра, в то время как обычные псевдонимы календаря имеют прозрачные эквиваленты с пятью полями.
Вывод: прозвища — это сахар для фиксированных выражений, а генератор позволяет вам создать явную версию и прочитать ее обратно.
Псевдонимы — это краткие метки для фиксированных выражений в этой реализации. Разворачивайте их всякий раз, когда обзор или настройка будут полезны при просмотре позиций. `@daily` — это не волшебство; во всех неограниченных полях календаря в выбранной зоне предварительного просмотра сейчас полночь.
Используйте список поддерживаемых, проверьте расширение и отойдите от полуночи, когда это необходимо. Для событий запуска остановите и выберите механизм, специфичный для целевой цели, вместо принудительного использования непросматриваемого триггера жизненного цикла в генераторе календаря. Эта граница продумана и проверена.