Запустите демон 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 на наличие сообщений об ошибках.