Introducción
Systemd es el sistema de inicio y administrador de servicios estándar en la gran mayoría de las distribuciones de Linux modernas como Ubuntu, Debian, CentOS y Fedora. Sin embargo, al intentar iniciar, reiniciar o verificar el estado de un servicio mediante el comando systemctl, es común encontrarse con el frustrante mensaje de error: Unit [nombre-servicio].service could not be found. Este problema impide la correcta ejecución de aplicaciones críticas en el servidor o estación de trabajo.
¿Cuáles son las causas del error 'Unit Not Found'?
El mensaje de error indica que Systemd no es capaz de localizar el archivo de configuración correspondiente a la unidad que intentas invocar. Las causas más frecuentes incluyen:
- El paquete del software no está instalado en el sistema operativo.
- El nombre del servicio se ha escrito de manera incorrecta o difiere del nombre real de la unidad.
- Systemd aún no ha recargado su tabla de dependencias tras una nueva instalación o modificación manual.
- El archivo de configuración de la unidad (archivo .service) fue eliminado o dañado accidentalmente.
Método 1: Verificar y corregir el nombre del servicio
Muchas veces el error se debe a un simple error tipográfico. A veces el nombre del servicio no coincide exactamente con el nombre del paquete de software.
- Abre tu terminal de Linux con privilegios de administrador.
- Lista todos los servicios disponibles en tu sistema ejecutando el siguiente comando:
systemctl list-unit-files --type=service - Utiliza la herramienta de búsqueda
greppara filtrar y encontrar el nombre exacto. Por ejemplo, si buscas Apache o Nginx:systemctl list-unit-files | grep apache - Una vez identificado el nombre correcto, intenta ejecutar nuevamente la acción deseada, por ejemplo:
sudo systemctl start apache2
Método 2: Recargar el daemon de Systemd
Si has instalado un servicio recientemente, o si has creado o modificado manualmente un archivo .service en el directorio /etc/systemd/system/, es probable que Systemd no lo tenga registrado en su memoria caché.
- Fuerza a Systemd a releer todos los archivos de configuración y actualizar las unidades ejecutando:
sudo systemctl daemon-reload - Verifica si el error ha desaparecido intentando iniciar el servicio nuevamente:
sudo systemctl start [nombre-servicio]
Método 3: Instalar el paquete faltante
Si el servicio realmente no existe porque el software nunca fue instalado en el sistema, Systemd arrojará este error al intentar llamarlo.
- Actualiza la lista de repositorios de tu sistema operativo con el gestor de paquetes correspondiente. En Ubuntu o Debian utiliza:
sudo apt update - Instala el paquete que contiene el servicio que necesitas. Por ejemplo, si necesitas el servidor web Nginx:
sudo apt install nginx - Habilita e inicia el servicio recién instalado para comprobar su correcto funcionamiento:
sudo systemctl enable --now nginx