Qual é a diferença entre os vários agendadores de events paira OS X / Dairwin?

Estou confuso sobre as diferenças entre as três ferramentas (que eu conheço) paira programair o funcionamento do código no OS X / Dairwin:

  • cron
  • launchcd
  • pmset

Eu entendo que o cron está em grande pairte obsoleto, mas ainda é usado por alguns utilitários (como Super Super !, por algum motivo), e esse pmset tem a capacidade de ativair o computador paira executair trabalhos específicos. Mas não estou clairo o que guiairá a seleção de um sobre o outro em geral.

Como esses três methods de programação do operating system diferem (especialmente nos Maviewicks, se as coisas são diferentes lá), especialmente nos filhos das tairefas que eles são adequados e como eles se comportam durante o sono ou a hibernação?

Use launchd vez de cron , ou outras ferramentas UNIX legadas paira Mac OS X.

pmset

O pmset é uma ferramenta de linha de command embutida paira obter e definir valores relacionados ao poder no Mac OS X. Uma das habilidades do pmset é adicionair e remoview inputs do IOPMQueue; O IOPMQueue é a queue de nível IOKit que permite que o seu Mac seja ligado e aceso em um momento específico. IOPMQueue também suporta o agendamento de desligamentos e reinícios.

O código airbitrário não pode ser agendado usando pmset ou através do IOPMQueue.

cron

Cron é um fiel do mundo do agendamento de tairefas. No entanto, no Mac OS X, o uso do cron não é recomendado. Use launchd .

O cron é implementado viewificando cada minuto paira tairefas que são devidas. Isso permite um format de agendamento poderoso e expressivo, mas com o custo de precisair despertair o processador a cada minuto.

Cron não sabe sobre o seu Mac dormindo. Se uma tairefa for devida enquanto o seu Mac estiview adormecido ou desligado, a tairefa não ocorrerá. Quando o seu Mac voltair a ligair, a tairefa não será executada porque o momento em que deviewia ter sido executado passou.

Existem outras ferramentas que se baseiam no cron e podem executair tairefas perdidas ao astringr. Nenhum está incluído por padrão com o Mac OS X.

lançado

launchd (launch daemon) é iniciador do sistema da Apple, ferramenta de agendamento e watchdog de process. O launchd está escrito paira as necessidades do operating system primeiro e os users em segundo lugair. É um process poderoso e capaz usado paira gerenciair ou lançair quase todos os outros processs em seu Mac.

launchd é uma melhoria no cron paira agendamento porque não precisa searchr paira executair tairefas. Em vez disso, o lançamento pode permanecer inativo até o momento em que uma tairefa precisa ser executada. Em uma era de informática consciente e de energia, isso é importante.

launchd não vai astringr um Mac queimado paira executair tairefas.

Os tickets de trabalho lançados são files da list de properties (plist). Esses files podem ser editados com um editor de text ou com vários aplicativos de terceiros.

O launchd é recomendado paira, e é adequado paira, a maioria das situações de agendamento.

Terceiro

Há um número de ferramentas de agendamento de terceiros disponíveis no Mac OS X. Eles geralmente fornecem uma interface gráfica ou oferecem mais resources do que estão incluídos nas ferramentas de linha de command padrão do Mac OS X. A ferramenta com a qual estou associado é o Power Manager .

pmset é um material de baixo nível e realmente não controla o funcionamento do código especificamente, pelo less não de forma direta ou intencional. Ele controla coisas como ativair ou desativair o seu Mac em momentos específicos, da mesma maneira que você pode fazer em Preferences do Sistema »Economia de energia. De um modo geral, você nunca precisa usair o pmset paira qualquer coisa diretamente.

cron ainda está lá porque … bem, porque a Apple ainda não o matou, apesair de ter desaprovado há anos. Eu suspeito que é porque existem algumas pessoas do passado * Un * x que ainda trabalham na Apple, que não querem vê-lo. Mas, na viewdade, não há nenhum sentido real em usair isso se você puder usair o launchd . Os trabalhos do IIRC cron não são executados se o computador estivesse dormindo quando deviewia correr.

launchd é o substituto da Apple paira o cron que adiciona muita flexibilidade ao agendamento de events em um Mac. É assim que você deve agendair events em um Mac. A melhor maneira de aprender a usair o launchd é LaunchControl , que é um aplicativo de US $ 10 sem DRM, sem códigos de licença e sem restrições. (Os desenvolvedores confiam na honestidade de seus users paira pagair a taxa de registro se eles usam o aplicativo.) Não só você obtém a funcionalidade de airrastair e soltair de trazer vários elementos de launchd , cada um está documentado paira que você possa view exatamente o que faz. Altamente recomendado.