Como usar: Gerador de systemd Service
- Escolha uma predefinição — Node.js, Python com Gunicorn, um binário Go ou um script agendado — para preencher valores padrão adequados.
- Defina o comando, o diretório de trabalho e o usuário com que ele vai rodar (crie com
useradd --system; nunca rode apps como root). - Adicione variáveis de ambiente ou um
EnvironmentFile, escolha a política de restart e mantenha o sandboxing ativado. - Copie o arquivo unit para
/etc/systemd/system/e execute os comandos de instalação mostrados.
As três seções de um arquivo unit
| Seção | Configurações principais |
|---|---|
[Unit] | Description, e After=/Wants=network-online.target para o app iniciar só depois que a rede estiver no ar |
[Service] | ExecStart (caminho absoluto), User, WorkingDirectory, Environment, Restart e RestartSec |
[Install] | WantedBy=multi-user.target — o ponto em que o systemctl enable conecta o serviço para ele iniciar no boot |
Sandboxing
As opções de hardening tornam o serviço bem mais seguro sem mudar nenhuma linha de código: NoNewPrivileges, ProtectSystem=strict (o sistema de arquivos fica somente leitura, exceto ReadWritePaths), ProtectHome, PrivateTmp, PrivateDevices e proteções do kernel. Confira o resultado com systemd-analyze security my-app. Se o app precisar gravar em outro lugar, adicione esse caminho em ReadWritePaths.
Timers no lugar do cron
Uma unit .timer inicia um serviço oneshot em um agendamento de calendário. Diferente do cron, as execuções ficam registradas no journal, ele consegue recuperar execuções perdidas (Persistent=true) e você vê a próxima execução com systemctl list-timers. Para converter uma linha do cron em um valor de OnCalendar, veja o Gerador de Expressão Cron.
Também pesquisado como: gerador unit file systemd, criar systemd service, arquivo service systemd, systemd service node js, systemd service python, gerador de systemd timer, arquivo de serviço linux.
Ferramentas que combinam com: Gerador de systemd Service
- Gerador de configuração do Nginx — Escolha o que o Nginx deve fazer — servir um site estático ou um SPA, atuar como proxy para um aplicativo Node/Python ou executar PHP — e marque os recursos extras.
- Gerador de Dockerfile — Escolha sua stack e receba um Dockerfile pronto para produção: build multi-stage, camada de dependências em cache, usuário não-root, health check e um .dockerignore correspondente — tudo explicado linha por linha.
- Gerador de VirtualHost Apache — Gere uma configuração completa de virtual host do Apache para o seu domínio: site estático, WordPress, PHP-FPM ou proxy reverso para um app Node ou Python.
- Gerador de Caddyfile — O Caddy obtém certificados HTTPS automaticamente, então você só descreve o seu site.