Dominando systemd: comandos esenciales

Mascote do LinuxPro operando o painel de controle do systemd

Te guste o no, el systemd es el init de prácticamente todas las distribuciones actuales — Ubuntu, Debian, Fedora, Arch, openSUSE. Dominar media docena de sus comandos resuelve el 90% del día a día con servicios. Aquí va lo esencial, directo al grano.

Gestionando servicios

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 con journalctl

El journal es el mejor amigo del 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 arranque

systemd-analyze                # tempo total de boot
systemd-analyze blame          # quem demorou mais
systemctl list-units --failed  # o que falhou

Timers: el cron de systemd

systemctl list-timers          # agendamentos ativos e próximas execuções

Creando tu propio servicio

Cualquier script se convierte en servicio con un archivo en /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 solo ya vale el post: tu servicio vuelve solo si cae.

Guarda este post en favoritos — es el tipo de referencia que vas a abrir todas las semanas.