Gerador de systemd Service — Crie um arquivo Unit .service

Rode seu app como um serviço Linux de verdade, que inicia com o sistema e reinicia quando trava. Escolha uma predefinição (Node.js, Python, Go, um script), ajuste o comando, o usuário e as variáveis de ambiente, e receba um arquivo unit .service comentado, com sandboxing opcional, ou um .timer para rodar uma tarefa agendada, como o cron.

Atualizado em
Arquivo unit
Comandos de instalação

Seus dados nunca saem do seu computador. Todo o processamento acontece localmente no navegador.

Como usar: Gerador de systemd Service

  1. Escolha uma predefinição — Node.js, Python com Gunicorn, um binário Go ou um script agendado — para preencher valores padrão adequados.
  2. 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).
  3. Adicione variáveis de ambiente ou um EnvironmentFile, escolha a política de restart e mantenha o sandboxing ativado.
  4. 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çãoConfiguraçõ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.

Perguntas frequentes

Onde eu coloco um arquivo de serviço do systemd?
Salve como /etc/systemd/system/NOME.service, execute sudo systemctl daemon-reload e depois sudo systemctl enable --now NOME para iniciar agora e em todo boot.
Como vejo os logs do meu serviço?
Execute journalctl -u NOME -f para acompanhar o log em tempo real, ou journalctl -u NOME --since today. Tudo o que o app imprimir em stdout ou stderr vai parar ali.
Qual a diferença entre Restart=always e on-failure?
on-failure reinicia só depois de uma falha ou de uma saída com código diferente de zero; always também reinicia após uma saída limpa. Use on-failure para a maioria dos apps e always para workers que nunca deveriam parar.
O systemd pode substituir o cron?
Sim — marque “Rodar em agendamento” para gerar uma unit .timer. Os timers registram cada execução, recuperam execuções perdidas após ficar offline e são mais fáceis de inspecionar que as entradas do crontab.
Posso instalar o Gerador de systemd Service como um aplicativo da web e usá-lo offline?
Sim. O Gerador de systemd Service é um aplicativo da web instalável (PWA) — instalado a partir do seu navegador, não baixado de uma loja de aplicativos. Clique em “Instalar aplicativo” na parte superior desta página no Chrome ou no Edge (Windows, macOS, Linux, ChromeOS) ou, no Android, use “Compartilhar” → “Adicionar à tela inicial” no iPhone e no iPad, ou “Arquivo” → “Adicionar ao Dock” no Safari 17+ em um Mac. Em seguida, ela se abre em uma janela própria com seu próprio ícone e, como é executada inteiramente no seu navegador, continua funcionando offline. O Firefox no desktop não permite a instalação de aplicativos da web. Como funciona a instalação.

Ferramentas relacionadas