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.