¿Qué es el error 'Unit not found' en Systemd?
El mensaje Unit not found es uno de los problemas más comunes a los que se enfrentan los administradores de sistemas Linux al intentar gestionar servicios mediante el comando systemctl. Este error indica que systemd es incapaz de localizar el archivo de configuración de la unidad (servicio, socket, temporizador, etc.) que intentas iniciar, detener o habilitar.
Causas principales del error
Las razones más frecuentes por las que systemd no encuentra una unidad incluyen:
- Error tipográfico en el nombre del servicio al escribir el comando.
- El paquete del software asociado no está instalado correctamente en el sistema.
- El archivo de servicio (.service) no se ha recargado tras sufrir modificaciones.
- La unidad está ubicada en un directorio no estándar o se ha eliminado accidentalmente.
Método 1: Verificar el nombre exacto de la unidad
A menudo, el error se debe a un simple error de tipeo o a que desconocemos el sufijo exacto del servicio. Utiliza el comando list-units para buscar coincidencias:
- Abre tu terminal de Linux.
- Ejecuta el comando de búsqueda filtrando por palabras clave:
systemctl list-unit-files | grep nombre_software - Identifica el nombre exacto que aparece en la lista.
- Vuelve a intentar la operación utilizando el nombre completo, por ejemplo:
sudo systemctl start apache2.service
Método 2: Recargar el daemon de Systemd
Si acabas de instalar un servicio manualmente o has modificado un archivo de configuración, es muy probable que systemd aún no lo haya registrado en su memoria caché interna.
- Informa a systemd para que vuelva a leer todos los archivos de unidades ejecutando:
sudo systemctl daemon-reload - Vuelve a comprobar el estado del servicio afectado:
sudo systemctl status mi-servicio.service
Método 3: Reinstalar o verificar la existencia del paquete
Si el archivo de servicio simplemente no existe porque el programa fue desinstalado o su instalación se corrompió, deberás reinstalar el paquete correspondiente en tu distribución (basada en Debian/Ubuntu o RHEL/CentOS).
- Actualiza la lista de paquetes locales:
sudo apt update(osudo yum check-update) - Reinstala el software problemático para recuperar sus archivos de systemd:
sudo apt install --reinstall nombre-paquete - Habilita y arranca el servicio nuevamente con normalidad.