Que es systemctl y systemd
Systemd es el sistema de inicializacion y gestion de servicios utilizado en la mayoria de las distribuciones modernas de Linux, incluyendo Ubuntu 16+, CentOS 7+, AlmaLinux, Rocky Linux y Debian 8+. Systemctl es la herramienta de linea de comandos que permite interactuar con systemd para iniciar, detener, reiniciar, habilitar y deshabilitar servicios del sistema.
Saber gestionar servicios con systemctl es una habilidad fundamental para la administracion de servidores Linux. Permite controlar todos los servicios del sistema, desde el servidor web y la base de datos hasta el firewall y el servidor de correo.
Comandos basicos de systemctl
| Accion | Comando | Descripcion |
|---|---|---|
| Ver estado | systemctl status servicio |
Muestra si el servicio esta activo y los ultimos logs |
| Iniciar | systemctl start servicio |
Inicia el servicio si esta detenido |
| Detener | systemctl stop servicio |
Detiene el servicio |
| Reiniciar | systemctl restart servicio |
Detiene y vuelve a iniciar el servicio |
| Recargar config | systemctl reload servicio |
Recarga la configuracion sin reiniciar el proceso |
| Habilitar al inicio | systemctl enable servicio |
El servicio inicia automaticamente con el servidor |
| Deshabilitar al inicio | systemctl disable servicio |
El servicio no inicia automaticamente |
| Ver todos los servicios | systemctl list-units --type=service |
Lista todos los servicios del sistema |
Servicios web comunes y sus nombres en systemd
# Apache systemctl restart apache2 # Ubuntu/Debian systemctl restart httpd # CentOS/AlmaLinux # Nginx systemctl restart nginx # MySQL / MariaDB systemctl restart mysql # Ubuntu/Debian systemctl restart mariadb # Algunos sistemas systemctl restart mysqld # CentOS/AlmaLinux # PHP-FPM (reemplazar X.X con la version) systemctl restart php8.1-fpm # SSH systemctl restart sshd # Firewall UFW systemctl restart ufw
Ver logs de un servicio
Cuando un servicio falla al iniciar o presenta errores, revisar sus logs es el primer paso para diagnosticar el problema:
# Ver los ultimos logs de un servicio journalctl -u nginx --no-pager -n 50 # Ver logs en tiempo real journalctl -u nginx -f # Ver logs desde el ultimo inicio del servicio journalctl -u nginx -b
Verificar que un servicio esta escuchando en el puerto correcto
# Ver que puertos estan en uso ss -tlnp # Verificar si nginx escucha en el puerto 80 ss -tlnp | grep :80
