Запустите демон Cron на OS X 10.10

Я поддерживаю некоторые машины OS X 10.10, для которых требуется cron для различных задач (сторожевые процессы, очистители / tmp и т. Д.). Один из них таинственным образом остановил своего демона cron, и я не могу восстановить его, если не запустить вручную /usr/sbin/cron команда от имени root.

Это не совсем ремонтопригодно; мы настолько не доверяем стабильности этих машин, что запланировали несколько перестановок в crontab, так что кому-то придется ssh и перезагрузите cron каждый раз, когда он перезагружается.

Я попытался выгрузить и перезагрузить cron plist для launchd:

launchctl unload /System/Library/LaunchDaemons/com.vix.cron.plist
launchctl load /System/Library/LaunchDaemons/com.vix.cron.plist

Я думал, что это начнется, но это не так. Я тогда попробовал:

launchctl start /System/Library/LaunchDaemons/com.vix.cron.plist

Но это также не имело никакого эффекта. До сих пор нет cron в списке процессов не выполняются задания cron, и launchctl list говорит - 0 com.vix.cron,

Переход от cron к чистому launchd - это один из способов обойти это, но это потребует еще большего отклонения нашего кода Linux и Mac, и потребует много тестирования и, честно говоря, гораздо большего знакомства с launchd.

Будучи относительно новым для OSX, я понятия не имею, куда идти дальше. Как я могу заставить cron работать на OSX 10.10 и запускаться при загрузке?


Обновить:

/etc/crontab существует как пустой файл, но все пользователи имеют свои соответствующие crontabs в /usr/lib/cron/tabs, Grep для cron в /var/log/system.log не появляется никаких результатов, кроме sudo cat вызывается в файлах crontab.

Если я выполню эту команду еще раз:

launchctl load -w /System/Library/LaunchDaemons/com.vix.cron.plist

Я получаю ошибку Operation already in progress,

1 ответ

launchd должен запускать cron автоматически, если есть какие-либо контакты - либо глобальный crontab в / etc / crontab, либо вкладки для каждого пользователя в / usr / lib / cron / tabs / *. Обратите внимание, что он не поддерживает /etc/cron.d/, поэтому, если вы помещаете туда свою работу, он ничего не будет делать.

Если у вас есть хотя бы один файл в соответствующем месте, и он все еще не запускается, проверьте /var/log/system.log на наличие сообщений об ошибках.

Другие вопросы по тегам