Muitas vezes, quero que meu computador adicione automaticamente algo à minha lista de tarefas em algum momento no futuro. Em alguns casos, quero adicionar a mesma coisa em intervalos regulares. Nestes casos eu uso o OS X's launchd
através da Lingon . Mas eu não tenho uma ótima solução para comandos que eu só quero executar uma vez. A julgar pelo Lingon X, launchd
não é a resposta. Quando eu adiciono um novo evento, as opções do Lingon para "Quando" são
- Na inicialização e ao salvar
- Sempre
- Montando um volume
- Tempo
e se eu selecionar "Tempo" as opções que eu obtenho são "A cada hora", "Todos os dias" etc.
Eu acredito que, em princípio, o at
comando é a resposta, MAS:
at
roda na linha de comando; Eu prefiro uma GUI. Talvez alguém tenha escrito um front-end? Eu não consigo encontrar run, mas "at" é uma palavra comum e por isso é difícil de procurar no google.atrun
está desativado por padrão no Mac OS, aparentemente porque é ineficiente de energia : "at é um cronjob, que por padrão está programado para ser executado a cada minuto. Ele varre seu diretório em busca de jobs que expiraram e os executa. Com 1 disk hit por minuto, o drive não vai dormir muito, o que causa problemas, especialmente em laptops " Para a minha candidatura, o trabalho atrasado 30 minutos não é um problema, então talvezatrun
com um ciclo mais longo funcionaria.
Qual é a maneira preferida de programar comandos para serem executados apenas uma vez em algum momento no futuro?
man crontab
diz: "Darwin note: Embora o cron (8) e o crontab (5) sejam oficialmente suportados pelo Darwin, sua funcionalidade foi absorvida pelo launchd (8), que fornece uma maneira mais flexível de executar comandos automaticamente." Em qualquer caso, a minha pergunta aqui é como executar trabalhos em uma base não recorrente; Parece que o iCal é uma possibilidade razoável. Obrigado.Temporizador de script parece ser uma opção. O autor escreve: "Sim, você pode programar um trabalho para ser executado apenas uma vez no Script Timer. Ele é tratado como um caso especial para um trabalho repetido - basta definir o intervalo de tempo de repetição para zero".
fonte