
Goste ou não, o systemd é o init de praticamente todas as distribuições atuais — Ubuntu, Debian, Fedora, Arch, openSUSE. Dominar meia dúzia de comandos dele resolve 90% do dia a dia com serviços. Aqui vai o essencial, direto ao ponto.
Gerenciando serviços
systemctl status nginx # estado, PID, últimas linhas de log
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx
sudo systemctl reload nginx # recarrega config sem derrubar conexões
sudo systemctl enable nginx # inicia no boot
sudo systemctl disable nginx
sudo systemctl enable --now nginx # ativa no boot E inicia agora
Logs com journalctl
O journal é o melhor amigo do sysadmin:
journalctl -u nginx # todos os logs do serviço
journalctl -u nginx -f # acompanhar em tempo real (tail -f)
journalctl -u nginx --since "1 hour ago"
journalctl -p err -b # só erros desde o último boot
journalctl --disk-usage # quanto o journal ocupa em disco
Diagnóstico de boot
systemd-analyze # tempo total de boot
systemd-analyze blame # quem demorou mais
systemctl list-units --failed # o que falhou
Timers: o cron do systemd
systemctl list-timers # agendamentos ativos e próximas execuções
Criando seu próprio serviço
Qualquer script vira serviço com um arquivo em /etc/systemd/system/meuapp.service:
[Unit]
Description=Minha aplicação
After=network.target
[Service]
User=www-data
WorkingDirectory=/opt/meuapp
ExecStart=/opt/meuapp/run.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now meuapp
O Restart=on-failure sozinho já paga o post: seu serviço volta sozinho se cair.
Guarde este post nos favoritos — é o tipo de referência que você vai abrir toda semana.