
Para que um programa seu (uma aplicação Node.js, um script Python, um bot) arranque com o servidor e volte sozinho se cair, escreve-se um ficheiro de unidade em /etc/systemd/system/, recarrega-se o systemd e activa-se o serviço com systemctl enable --now. É a forma nativa de qualquer Linux moderno, sem instalar mais nada. Para aplicações Node.js existe ainda o PM2 (manter uma aplicação Node.js a correr com o PM2); o systemd serve para tudo o resto, e também para o Node.
Passo a passo
|
|
|
|
|
|
|
As linhas da unidade, em palavras
| Linha | Para quê |
| After=network.target | Só arranca depois de a rede estar pronta. |
| User= | Quem corre o programa. Nunca root, a não ser que precise mesmo. |
| ExecStart= | O comando, com o caminho completo do programa. O systemd não usa o seu PATH nem o seu terminal. |
| Restart=on-failure | Volta a arrancar se terminar com erro; não volta se você o parou de propósito. |
| EnvironmentFile= | Lê as variáveis de um ficheiro, em vez de as escrever na unidade (que qualquer utilizador pode ler). |
| WantedBy=multi-user.target | É o que faz o enable arrancá-lo no arranque normal do servidor. |
| O ExecStart não é um terminal. Redirecções, && e ~ não funcionam como no terminal; use caminhos absolutos e, se precisar de vários comandos, ponha-os num script e execute o script. Se vir “status=203/EXEC”, o caminho está errado: ler o systemctl status. |
| Mudou a unidade e nada mudou? Falta o sudo systemctl daemon-reload. E uma unidade que dá “Permission denied” ao ler uma pasta é permissões ou o SELinux: permissões de ficheiros. |
| Reiniciar com um temporizador, em vez do cron: o systemd também agenda (ficheiros .timer), mas para tarefas simples o cron continua a ser o mais directo: quando o cron não corre. |
|
O programa corre à mão e falha como serviço, e já leu o registo? Mostre-nos o texto do erro e o que mudou desde que funcionava. Abrir um pedido de suporte |
|
VEJA TAMBÉM Um serviço não arranca: ler o systemctl status Onde estão os registos num VPS Linux |
PRODUTO RECOMENDADO Alojamento de sites com cPanel Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde 321,75 MT/mês (plano de 3 anos, com cupão) Ver planos |
- 0 Utilizadores acharam útil











