¿Qué es el error 'Unit Not Found' en Systemd?
Cuando administras servidores o estaciones de trabajo basadas en distribuciones Linux modernas como Ubuntu, Debian, CentOS o Fedora, el sistema de inicio systemd es el encargado de gestionar los servicios y daemons. El error 'Unit Not Found' aparece habitualmente al intentar ejecutar comandos como systemctl start o systemctl status, indicando que systemd no puede localizar el archivo de configuración de la unidad (servicio) que intentas invocar.
Causas principales del error
Este fallo en el gestor de servicios suele ser provocado por:
- Mal tipado o error tipográfico en el nombre del servicio al escribir el comando.
- El paquete del software correspondiente no está instalado correctamente en el sistema.
- El archivo de servicio (
.service) ha sido eliminado o dañado. - Systemd aún no ha recargado los cambios recientes tras instalar o modificar un servicio nuevo.
Método 1: Verificar el nombre exacto del servicio
Muchas veces el error se debe a un simple error tipográfico o a que el nombre del servicio difiere del nombre del paquete. Sigue estos pasos para encontrar la unidad correcta:
- Abre tu terminal de Linux con privilegios de administrador.
- Ejecuta el comando
systemctl list-unit-filespara listar todos los servicios disponibles en tu sistema. - Utiliza un filtro con el comando
greppara buscar coincidencias aproximadas, por ejemplo:systemctl list-unit-files | grep apache. - Una vez identificado el nombre exacto (por ejemplo,
apache2.serviceen lugar de soloapache), intenta iniciar el servicio nuevamente con:sudo systemctl start apache2.service.
Método 2: Recargar el daemon de Systemd
Si acabas de crear un archivo de servicio personalizado o has actualizado una aplicación recientemente, es muy probable que el demonio de systemd no tenga registrada la nueva unidad. Para solucionar esto:
- Ejecuta el siguiente comando para forzar a systemd a releer todos los archivos de configuración del sistema:
sudo systemctl daemon-reload. - A continuación, habilita e inicia el servicio nuevamente con:
sudo systemctl enable --now nombre-servicio.
Método 3: Reinstalar el paquete del servicio faltante
Si el archivo de la unidad se eliminó por accidente o la aplicación nunca se instaló de forma correcta, la mejor solución es reinstalar el paquete utilizando el gestor de paquetes de tu distribución:
- Actualiza la lista de paquetes ejecutando
sudo apt update(en sistemas basados en Debian/Ubuntu) osudo dnf check-update(en sistemas RedHat/Fedora). - Reinstala el paquete afectado forzando la reposición de sus archivos de configuración con:
sudo apt install --reinstall nombre-del-paquete. - Comprueba que el servicio responda correctamente ejecutando
sudo systemctl status nombre-del-paquete.