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
¿Fue útil la respuesta? 0 Los Usuarios han Encontrado Esto Útil (0 Votos)