Por que o cron está sendo preterido?

21

Acabei de descobrir que cronfoi descontinuado no Mac OS X. Por que isso ocorre e ele será completamente removido de versões futuras?

eckza
fonte

Respostas:

24

Com o lançamento do Mac OS 10.4, launchdfoi escolhido para substituir cronno Mac OS. Aqui está uma versão em cache da página launchd do Apple Developer Connection em 2005. Explica por que cronfoi preterido e os benefícios da launchdperspectiva da Apple.

O resumo: launchdfoi criado para não apenas substituir, cronmas também init, xinetdpara melhor desempenho e melhor controle sobre a configuração e as próprias tarefas reais.

O launchddaemon 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.

michaelmichael
fonte
13

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, launchdsubstitui 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ê:

  • Mais rápido
  • mais poderoso
  • unificado e centralizado
  • mais seguro

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.

bmike
fonte
5

Nem sei se o cron foi preterido. man crontabparece 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.

Lri
fonte