Назад | Перейти на главную страницу

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

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

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

Я попытался выгрузить и перезагрузить список cron для 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 существует как пустой файл, но у всех пользователей есть соответствующие crontab в /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.

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

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