Почему cron считается устаревшим?

20

Я только что узнал, что cron устарела в Mac OS X. Почему это так и будет ли оно в конечном итоге полностью удалено из будущих выпусков?

eckza
источник

Ответы:

23

С выпуском Mac OS 10.4, launchd был выбран, чтобы заменить cron в Mac OS. Вот кэшированная версия страницы запуска от Apple Developer Connection в 2005 году. Это объясняет, почему cron устарела, а также преимущества launchd с точки зрения Apple.

Резюме: launchd был создан, чтобы не просто заменить cron но также init, xinetd для повышения производительности и лучшего контроля над конфигурацией и самими задачами.

launchd daemon предлагает единый стандартизированный интерфейс для всех программ, автоматически запускаемых системой. Кроме того, файлы конфигурации, которые определяют, когда запускать данную программу, также могут указывать ограничения ресурсов и переменные среды, что упрощает настройку и безопасность для многих программ. Один и тот же формат файла конфигурации используется независимо от того, запускается ли задание один раз при запуске системы или при входе пользователя в систему, по запросу по сети или через определенные промежутки времени.

michaelmichael
источник
12

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

В двух словах, launchd заменяет 7 основных задач и множество сценариев ( Inetd , в этом а также гс и связанные структуры сценариев оболочки, crond , фактическое время убытия , watchdogd , SystemStarter ) с одним гораздо более мощным инструментом с открытым исходным кодом.

Зачем:

  • Быстрее
  • более могущественный
  • единый и централизованный
  • более безопасный

Когда: 29 апреля 2005 года (когда OS X Tiger был выпущен для продажи)

Ничто не мешает нам всем использовать launchd для запуска cron сейчас на Tiger, Leopard или Snow Leopard.

Если будущее Apple прекратит доставку /usr/sbin/cronэто наверняка закончится как Wget и другие зрелые инструменты с открытым исходным кодом, которые компилируются и должны быть добавлены как отдельный инструмент командной строки.

bmike
источник
3

Я даже не знаю, был ли cron устарел. man crontab кажется, указывает, что это не имеет:

(Примечание Дарвина: хотя cron (8) и crontab (5) официально поддерживаются в Darwin, их функциональность была включена в launchd (8), который обеспечивает более гибкий способ автоматического выполнения команд. Для получения дополнительной информации см. Launchctl (1)). .)

Руководство по программированию демонов и сервисов говорит, что это устарело, хотя:

Примечание: хотя это все еще поддерживается, cron не является рекомендуемым решением. Это устарело в пользу launchd.

crontab также требуется POSIX и OS X должен быть совместимым с SUS.

В любом случае, cron, вероятно, не перестанет работать в ближайшее время, и я не знаю, можно ли сказать, что он медленнее или менее безопасен, чем запущенный. Процесс cron должен почти не использовать процессорное время или память. Некоторые преимущества использования или изучения cron заключаются в том, что он также доступен на других платформах, а формат конфигурации проще.

Lri
источник