Um guia para iniciantes para agendar trabalhos no macOS

Recentemente, fiz um aplicativo Go que remove as capturas de tela da área de trabalho. Pode ser encontrado aqui removedor de captura de tela. Criei este aplicativo porque costumo tirar muitas capturas de tela, que rapidamente bagunçam minha área de trabalho. Para manter as coisas arrumadas, o script remove automaticamente qualquer imagem na área de trabalho que não foi modificada nos últimos 7 dias. Isso me dá tempo de sobra para salvar as capturas de tela de que realmente preciso, mantendo o resto de se acumular. Agora, a próxima pergunta, como economizo executar o executável diariamente em algum momento específico? A solução óbvia é Cron, pois isso é algo conhecido e usado por todos. Mas, durante a pesquisa, descobri que a Apple recomenda o uso de empregos do Launchd for Timed sobre o CRON no OS X. Então, aqui estão as etapas para executar um executável automaticamente diariamente em um horário específico – criando um arquivo launchagent (.plista), então o que é o LaunchAgent e o que é um arquivo de plista? No Mac OS, o Launchd é o sistema principal que é usado para gerenciar serviços do sistema e quaisquer processos. Um LaunchAgent é um tipo de trabalho que é gerenciado pelo Launchd. Em termos simples, um LaunchAgent é um processo executado em nome do usuário quando esse usuário está conectado. Um arquivo .plista significa Lista de Propriedades. É um formato de arquivo usado pelo MacOS para armazenar dados estruturados. Em nosso contexto, um arquivo .plista é o arquivo de configuração que contém informações sobre tudo o que o Launchd precisa saber para gerenciar o trabalho. Com os detalhes acima limpos, crie um arquivo .plista com o nome de com.user.myjob.plist dentro dos ~/biblioteca/launchagents/com qualquer nome. Editando o arquivo .plista agora a próxima pergunta, como usamos um arquivo plist para acionar um executável? Acontece que podemos escrever o código XML dentro de um arquivo Plist. Então, vamos fazer isso. Cole o seguinte código dentro do arquivo – version = “1.0”> rótulo com.user.myjob programargudents/path/to/your/executável startCalendarInterval hora 7 minutos 30 StandardoutPath /tmp/myjob.out StandarderRorpor Vamos percorrer as coisas importantes linha por linha. Primeiro, temos isso – digite o modo de saída do modo de tela cheia, o código acima especifica o DTD para uma lista de propriedades e diz a MacOS para interpretar esse XML como um arquivo plistador. Digite o modo de saída do modo de tela cheia, isso abre um dicionário. Nos arquivos Plist, este é um mapa de valor-chave semelhante aos objetos JSON. Label com.user.myjob Digite o modo de saída do modo de tela cheia de tela cheia é basicamente um identificador exclusivo para este trabalho. Como o ID interno do trabalho. ProgramArguments/Path/para/Your/Executável Digite Modo de tela Full Salt Screenscreen Modo Program Argumentos Define qual programa precisa ser executado. Uma matriz é usada aqui porque, às vezes, alguém precisa fornecer vários argumentos. No nosso caso, precisamos apenas fornecer o caminho completo de onde o executável é armazenado. StartCalendarInterval Hour 7 minutos 30 Digite o modo de saída de tela cheia de tela cheia que isso define quando o trabalho deve ser executado. No nosso caso, ele deve ser executado às 7h30 diariamente. Este ditado nos permite especificar vários campos como hora, minuto, dia da semana, mês etc. StandardoutPath /tmp/myjob.out StandarderRorPath /tmp/myjob.err Digite o modo de tela cheia de tela cheia como podemos verificar se isso está em execução conforme esperado ou encontrando erros? Podemos fazer isso usando chaves para redirecionar a saída do programa. O StandardOutPath é usado para saída normal (STDOUT) e o Standarderrpath é usado para as mensagens de erro (STDERR). Portanto, depois que o trabalho é executado, podemos conferir /tmp/myjob.out e /tmp/myjob.err para depurar. Então agora temos a plista pronta para administrar o trabalho. Mas ainda precisamos de mais um passo. Carregue o trabalho com o LaunchCTL para que tenhamos o arquivo Plist, mas ainda precisamos informar o Launchd para carregá -lo. Felizmente, isso pode ser feito com apenas um comando. Launchctl load ~/biblioteca/launchagents/com.user.myjob.plist Digite o modo de saída de tela cheia de tela cheia e, depois disso, você pode usar o seguinte comando para verificar se ele foi carregado. LISTA LANÇACCTL | Grep com.user.myjob Digite o modo de saída de tela cheia de tela cheia e é isso! Seu trabalho está agendado com sucesso. Configuramos um arquivo Plist para executar um executável diariamente ou quando quisermos.

Fonte

Você pode ter perdido