um simples Tutorial de lançamento

suponha que você escreveu um pequeno script que você quer executar de vez em quando. Se você está usando um Mac, então launchd é uma ferramenta perfeita para usar.

é melhor que crontab porque, entre outras coisas, se o seu computador estiver desligado quando o seu programa está programado para correr, launchd irá executar o seu programa assim que o computador acordar. Entretanto, crontab não o fará.

a primeira coisa a fazer é criar um script para executar. Vou escrever um nó simples.js, mas podes usar o que quiseres.

touch ~/demo/main.js

para o bem deste exemplo, tudo que este script vai fazer é registrar o tempo em que ele foi executado.

console.log("Hello", Date.now())

agora precisamos criar um arquivo plist de configuração launchd.

touch ~/Library/LaunchAgents/com.demo.daemon.plist

um ficheiro plist é apenas o formato XML personalizado da Apple para Configurações. Cole este código ali. Você pode precisar mudar /Users/chet/demo para o diretório que você está usando para este exemplo.

este ficheiro especifica algumas coisas:

  • o servidor irá iniciar sempre que o utilizador se ligar.
  • executará a cada 20 segundos.
  • irá enviar para alguns ficheiros de Registo (muito útil para depuração).
  • irá definir o caminho do ambiente (útil se o seu programa usar outros comandos de usr/local/bin).
  • o comando será executado no directório /Users/chet/demo.
  • e o comando é /usr/local/bin/node main.js.

há um monte de outras opções que você pode ler sobre aqui. Uma opção normalmente usada é a opção KeepAlive que irá reiniciar o seu programa sempre que terminar ou falhar. Isto é útil se quiser que o seu script esteja sempre em execução.Agora, só precisamos de o pôr a funcionar. Primeiro, abra o Console.app. Você pode nunca tê-lo usado antes, mas é um aplicativo de utilidade nativa para depurar este tipo de coisas. No sistema.secção de Registo, você pode procurar por com.demo.daemon para ver se existem quaisquer erros de sistema quando você tentar iniciar launchd.

de Volta ao Terminal, execute o comando a seguir.

launchctl load ~/Library/LaunchAgents/com.demo.daemon.plist

se vir alguns erros no Console.app pode parar o servidor com unload e procurar erros no ficheiro stderr.log.

se tudo correu bem, você não deve ver nada no Console.app e você deve ver registros chegando ao arquivo ~/demo/stdout.log a cada 20 segundos.