Execute o daemon Cron no OS X 10.10

4

Estou mantendo algumas máquinas do OS X 10.10 que requerem o cron para várias tarefas (processos de watchdog, limpadores / tmp, etc.). Um deles parou misteriosamente seu daemon de cron, e parece que não consigo trazê-lo de volta antes de manualmente executar o comando /usr/sbin/cron como root.

Isso não é realmente sustentável; desconfiamos da estabilidade dessas máquinas o suficiente para agendarmos algumas reinicializações escalonadas no crontab, então alguém teria que ssh in e reiniciar o cron toda vez que for reinicializado.

Eu tentei descarregar e recarregar o cronplit para launchd:

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

Eu pensei que isso começaria, mas isso não aconteceu. Eu tentei então:

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

Mas isso também não teve efeito. Ainda não há cron na lista de processos, tarefas agendadas não estão sendo executadas e launchctl list diz - 0 com.vix.cron .

Mudar do cron para o puro launchd é uma maneira de contornar isso, mas seria necessário divergir ainda mais o nosso código linux e mac, e exigiria muitos testes e, francamente, muito mais familiaridade com o launchd.

Sendo relativamente novo no OSX, não tenho ideia de onde ir a partir daqui. Como posso fazer o cron rodar no OSX 10.10 e iniciar no boot?

Atualização:

/etc/crontab existe como um arquivo vazio, mas todos os usuários têm seus respectivos crontabs em /usr/lib/cron/tabs . Um grep para o cron em /var/log/system.log apresenta resultados que não sejam o sudo cat invocado nos arquivos crontab.

Se eu executar este comando novamente:

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

Eu recebo o erro Operation already in progress .

    
por Score_Under 19.10.2015 / 13:01

1 resposta

1

O launchd deve iniciar o cron automaticamente se houver alguma contabela - um crontab global nas guias / etc / crontab ou por usuário em / usr / lib / cron / tabs / *. Note que ele não suporta /etc/cron.d/, então se você está colocando seu (s) trabalho (s) lá, ele não fará nada.

Se você tiver pelo menos um arquivo no local relevante e ele ainda não estiver iniciando, verifique /var/log/system.log se há mensagens de erro.

    
por 20.10.2015 / 05:34