Acabei de descobrir que cron
foi descontinuado no Mac OS X. Por que isso ocorre e ele será completamente removido de versões futuras?
Com o lançamento do Mac OS 10.4, launchd
foi escolhido para substituir cron
no Mac OS. Aqui está uma versão em cache da página launchd do Apple Developer Connection em 2005. Explica por que cron
foi preterido e os benefícios da launchd
perspectiva da Apple.
O resumo: launchd
foi criado para não apenas substituir, cron
mas também init
, xinetd
para melhor desempenho e melhor controle sobre a configuração e as próprias tarefas reais.
O
launchd
daemon oferece uma interface única e padronizada para todo e qualquer programa iniciado automaticamente pelo sistema. Além disso, os arquivos de configuração que determinam quando executar um determinado programa também podem especificar limites de recursos e variáveis de ambiente, o que simplifica a instalação e a segurança de muitos programas. O mesmo formato de arquivo de configuração é usado, seja um trabalho iniciado uma vez na inicialização do sistema ou no login do usuário, sob demanda pela rede ou em intervalos.
O artigo da wikipedia sobre o launchd tem um resumo muito bom, discussões prolongadas, além de ótimos vídeos e links externos para uma análise mais profunda dessa decisão da Apple.
Em poucas palavras, launchd
substitui 7 principais tarefas e uma batelada de scripts ( inetd , o init e rc e estruturas de script shell associados, crond , ATD , watchdogd , SystemStarter ) com uma muito mais poderosa ferramenta de código aberto.
Por quê:
Quando: 29 de abril de 2005 (quando o OS X Tiger foi lançado para venda)
Não há nada que nos impeça de usar o launchd para iniciar o cron agora no Tiger, Leopard ou Snow Leopard.
Caso a Apple futura interrompa o envio /usr/sbin/cron
, ela certamente acabará como o wget e outras ferramentas maduras de código aberto que são compiladas e precisam ser adicionadas como uma ferramenta de linha de comando separada.
Nem sei se o cron foi preterido. man crontab
parece indicar que não tem:
(Nota do Darwin: Embora o cron (8) e o crontab (5) sejam oficialmente suportados pelo Darwin, sua funcionalidade foi absorvida no launchd (8), que fornece uma maneira mais flexível de executar comandos automaticamente. Consulte launchctl (1) para obter mais informações. .)
O Guia de Programação de Daemons e Serviços diz que foi preterido:
Nota: Embora ainda seja suportado, o cron não é uma solução recomendada. Foi preterido em favor do launchd.
O crontab também é exigido pelo POSIX e o OS X deve ser compatível com o SUS.
De qualquer forma, o cron provavelmente não deixará de funcionar tão cedo, e não sei se pode ser considerado mais lento ou menos seguro do que o launchd. O processo cron não deve usar quase nenhum tempo ou memória da CPU. Algumas vantagens de usar ou aprender o cron são que ele também está disponível em outras plataformas e o formato de configuração é mais simples.