En los sistemas operativos basados en Linux, los servicios son procesos que se ejecutan en segundo plano y, por tanto, son esenciales para el funcionamiento del sistema. Desde el arranque hasta tareas como la red, bases de datos o servidores web, además, los servicios garantizan que todo funcione sin interrupciones. Con el tiempo, distintas herramientas han sido usadas para controlarlos, sin embargo, hoy en día, la gestión de servicios con systemd se ha convertido en el estándar en la mayoría de las distribuciones modernas.
Archivos de configuración de servicios
En systemd, cada servicio tiene un archivo de configuración llamado unit file, que define cómo funciona el servicio. Por ejemplo, los archivos de configuración suelen estar en dos ubicaciones principales:
- En primer lugar, /lib/systemd/system/: Archivos proporcionados por el sistema
- Por otro lado, /etc/systemd/system/: Archivos personalizados por el usuario
Además, a continuación se muestra un ejemplo de un archivo de servicio (nginx.service):
[Unit] Description=A high performance web server and a reverse proxy server
After=network.target
[Service] ExecStart=/usr/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install] WantedBy=multi-user.targetComandos para la gestión de servicios con systemd
Para consultar todos los servicios que están funcionando en tu sistema:
systemctl list-units --type=serviceSi necesitas conocer el estado específico de un servicio en particular:
systemctl status servicio
#ejm; systemctl status sshdCuando requieras poner en marcha un servicio:
sudo systemctl start servicio
#ejm; sudo systemctl start nginxPara detener un servicio que está ejecutándose:
sudo systemctl stop servicio
#ejm; sudo systemctl stop sshdEn caso de necesitar reiniciar un servicio (detener y luego iniciar):
sudo systemctl restart servicio
#ejm; sudo systemctl restart firewalldSi deseas que un servicio se inicie automáticamente al arrancar el sistema:
sudo systemctl enable servicio
#ejm; sudo systemctl enable mysqldDeshabilitar un servicio del arranque automático
sudo systemctl disable servicio
#ejm; sudo systemctl disable cupsConfiguración y gestión de un servicio con systemd
Supongamos que queremos instalar y configurar un servicio web con nginx.
- Instalar nginx:
sudo apt install nginx # En sistemas Debian/Ubuntu
sudo dnf install nginx # En sistemas RHEL/Fedora- Iniciar el servicio:
sudo systemctl start nginx- Habilitar el servicio para el arranque automático:
sudo systemctl enable nginx
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → lib/systemd/system/nginx.service.- Verificar que está corriendo:
systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2025-04-16 12:34:56 UTC; 1min 20s ago
Docs: man:nginx(8)
Main PID: 1234 (nginx)
Tasks: 3 (limit: 9462)
Memory: 5.6M
CPU: 35ms
CGroup: /system.slice/nginx.service
├─1234 nginx: master process /usr/sbin/nginx
├─1235 nginx: worker process
└─1236 nginx: worker processConclusión
En resumen, dominar la gestión de servicios con systemd es clave para cualquier usuario o administrador de sistemas Linux. Por un lado, esta herramienta proporciona control, rapidez y flexibilidad. Por otro lado, permite administrar servicios de manera eficiente y segura. Ya sea que estés configurando un servidor o, por el contrario, simplemente ajustando tu sistema personal, entender cómo funciona systemd te dará una ventaja poderosa en tu flujo de trabajo.
Finalmente, en este post hemos detallado los comandos básicos para gestionar servicios dentro de Linux, usando systemd como herramienta principal. De igual forma, hemos explicado cómo iniciar, habilitar y verificar el estado de servicios como nginx, de forma eficiente y segura. ¡Esperemos que os guste!

