50% de descuento Todos los planes, tiempo limitado. A partir de $2.48/mo
Quedan 7 minutos
Servidores y SO

Cómo arreglar systemctl: Error de comando no encontrado en Ubuntu

Nick Plata By Nick Plata 7 minutos de lectura Actualizado el 20 de febrero de 2025
cómo arreglar systemctl: comando no encontrado

Una de las herramientas más poderosas y útiles para los usuarios de Linux, especialmente distribuciones modernas como Ubuntu, es comando systemctl. Esta utilidad de línea de comandos se utiliza normalmente para interactuar con systemd, el sistema y el administrador de servicios.

A través del comando, puede administrar los servicios del sistema, ver su estado, iniciarlos o detenerlos y habilitarlos y deshabilitarlos al iniciar el sistema. Bastante útil, ¿verdad? Pero si el comando systemctl no se encuentra o no se reconoce, se enfrentará al problema "sudo:systemctl: comando no encontrado" error.

Entonces, hablemos sobre lo que significa el error "systemctl: comando no encontrado", las diversas razones por las que enfrenta este error y cómo solucionarlo.

¿Qué significa systemctl: comando no encontrado?

En pocas palabras, el error "systemctl: comando no encontrado" significa que la utilidad de línea de comandos systemctl no está disponible o no es accesible en el entorno actual. Esto puede deberse a una serie de razones, todas las cuales se remontan a que el entorno no es un entorno de sistema o que el paquete systemd no está instalado en el sistema.

Básicamente, el paquete systemd no está instalado, o su distribución o versión de Linux no usa systemd; más bien, utiliza sistemas de gestión de servicios más antiguos como init.d. Otra posibilidad es que la variable de entorno PATH no incluya el directorio donde se encuentra systemctl, lo que significa que su shell no puede encontrarlo.

Ahora que tiene una idea de lo que podría estar mal en su sistema, lo que lleva al error "systemctl: comando no encontrado", veamos cómo puede verificar dónde radica su problema y cómo solucionarlo.

Arreglando systemctl: Error de comando no encontrado

En los siguientes pasos, verificaremos si su sistema tiene systemd instalado y usa systemctl o no, así como también verificaremos la ruta de systemctl. Una vez que hayamos verificado el problema, tomaremos los pasos necesarios para corregir el error.

1. Verificar si su sistema usa systemd

Dado que Ubuntu systemctl solo se puede usar si tiene instalado el paquete systemd, primero verificaremos si su sistema debe usar systemd ejecutando el siguiente comando:

ps -p 1 -o comm=

O puede verificar la versión de systemd con el siguiente comando:

systemd --version

Si el resultado es systemd, entonces systemd es su sistema de inicio y debería tener Ubuntu systemctl instalado. Sin embargo, si el resultado es init u otro administrador de procesos, significa que su sistema está usando un sistema de inicialización alternativo y systemctl no funcionará a menos que migre a systemd.

Si ve sistemas de inicialización más antiguos como Upstart o SysVinit y desea cambiar a systemd para usar systemctl, siga estos pasos:

1. Instale systemctl instalando systemd usando el siguiente comando:

sudo apt install systemd-sysv

2. Reinicie su sistema ejecutando este comando:

sudo reboot

3. Verifique que su sistema ahora esté usando systemd:

ps -p 1 -o comm=

La salida debería ser systemd ahora.

2. Asegurarse de que systemd esté instalado correctamente

En circunstancias normales, cuando systemd está instalado y se ejecuta como su sistema de inicio, el comando systemctl debería funcionar correctamente. Si no es así, significa que falta el paquete systemd o está mal instalado.

Tenga en cuenta que si está utilizando una versión mínima de Ubuntu, como un contenedor Docker o una instancia en la nube, es posible que systemd no se haya instalado de forma predeterminada. Para instalar systemctl mediante la instalación de systemd, ejecute los siguientes comandos:

sudo apt update
sudo apt install systemd

Una vez instalado, verifique si el comando systemctl está disponible.

3. Comprobando la RUTA de systemctl

Un problema común con el error systemctl not found es que systemctl podría estar instalado, pero no está en la RUTA de su sistema. Para verificar si los archivos binarios de systemd existen o no en los directorios típicos donde se encuentran, como /bin, /usr/bin o /usr/local/bin, puede usar el siguiente comando:

which systemctl

Si systemctl se encuentra en cualquiera de sus directorios enumerados en PATH, debería obtener un resultado como este:

/usr/bin/systemctl

Si systemctl no se encuentra en ninguno de los directorios de PATH, el comando which no devolverá nada.

Sin embargo, es posible que systemctl aún no funcione aunque se encuentre en sus directorios. Esto se debe a que systemctl podría estar ubicado en un directorio que no está incluido en la RUTA. En esta situación, deberá verificar si el directorio donde se encuentra systemctl es parte de su sistema usando el siguiente comando:

echo $PATH

La salida debería ser algo como esto:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Ahora, todo lo que tiene que hacer es verificar si el directorio en el que reside systemctl (que obtuvo del comando what) está incluido en los directorios enumerados en la salida del comando echo $PATH.

Si el directorio de systemctl no está incluido en la salida de echo $PATH, tendrás que agregarlo a tu variable PATH. Para hacer esto, deberá ejecutar el siguiente comando:

Para Usuarios de shell Bash, abra el archivo ~/.bashrc en un editor de texto:

nano ~/.bashrc

Agregue la siguiente línea al final del archivo:

export PATH=$PATH:/usr/bin

/usr/bin es un directorio típico donde se encuentra systemctl en este ejemplo.

Ahora, guarde y cierre el archivo presionando CTRL + X, luego Y para confirmar y Enter para guardar.

Para Usuarios de Zsh, Abra el archivo ~/.zshrc en un editor de texto:

nano ~/.zshrc

Agregue la siguiente línea al final del archivo:

export PATH=$PATH:/usr/bin

/usr/bin es un directorio típico donde se encuentra systemctl en este ejemplo.

Ahora, guarde y cierre el archivo presionando CTRL + X, luego Y para confirmar y Enter para guardar.

Una vez que haya terminado con los pasos anteriores, use el comando echo $PATH para verificar si el directorio de su systemctl se ha agregado a su RUTA. Ahora, debería poder ejecutar systemctl sin encontrarse con el error "systemctl: comando no encontrado".

4. Reinstalar systemd

Si las correcciones anteriores no funcionan y aún enfrenta el error de comando no encontrado, reinstalar systemd por completo podría resolver el problema. Para hacer esto, ejecute los siguientes comandos:

sudo apt purge systemd
sudo apt install systemd

Luego, reinicie su sistema con este comando:

sudo reboot

Verifique si systemctl funciona.

5. Verificar que systemd esté configurado correctamente

A veces, el problema puede ser tan simple como una instalación mal configurada de systemd, lo que genera un error "systemctl: comando no encontrado". Todo lo que tienes que hacer para solucionar este problema es ejecutar el siguiente comando y listo:

sudo dpkg-reconfigure systemd

6. Subsistema de Windows obsoleto para Linux (WSL)

Si estás usando Ubuntu en WSL (Subsistema de Windows para Linux) Debes saber que las versiones anteriores de WSL, como WSL 1, no son compatibles de forma nativa con systemctl, por lo que no importa cuál de las correcciones anteriores utilices, no podrás ejecutar systemctl.

Si desea aprovechar las funciones de systemctl, deberá actualizar a WSL 2, que tiene mejor soporte para systemd. Si no está seguro de si está utilizando WSL o no, puede comprobarlo utilizando el siguiente comando:

uname -a

Si el resultado menciona WSL, entonces es por eso que aparece el error "systemctl: comando no encontrado".

7. Uso del servicio sudo como alternativa a systemctl

Si se enfrenta al error "systemctl: comando no encontrado" porque su sistema no usa systemd, puede usar el comando sudo service para administrar los servicios. Este comando funciona con sistemas de inicio más antiguos como SysVinit o Upstart. Esto es útil para sistemas Ubuntu que dependen de scripts de inicio en lugar de systemd.

Por ejemplo, para iniciar un servicio, ejecutaría:

sudo service <service_name> start

Pensamientos finales

systemd y su utilidad de línea de comandos systemctl han reemplazado a la mayoría de los otros sistemas de inicio antiguos como SysVinit y Upstart. Si bien es posible que systemd no sea del agrado de todos debido a su diseño monolítico y su filosofía no Unix, systemd todavía se considera generalmente como la opción predominante. Entonces, con suerte, has podido resolver el error de comando systemctl no disponible, ya que no poder usar la utilidad de línea de comandos de systemd limita severamente sus capacidades.

Preguntas frecuentes

¿Qué es systemctl y qué significa systemctl: comando no encontrado?

systemctl es una herramienta de línea de comandos que se utiliza para administrar servicios en sistemas Linux que ejecutan systemd, como Ubuntu. El error "systemctl: comando no encontrado" ocurre cuando la herramienta no está disponible o no es accesible, generalmente porque el sistema no usa systemd o el paquete systemd no está instalado.

¿Systemctl está disponible en todas las versiones de Ubuntu?

No, systemctl no está disponible en todas las versiones de Ubuntu. systemctl es parte del sistema de inicio systemd, que es el predeterminado en la mayoría de las versiones modernas de Ubuntu (desde 15.04 en adelante). Las versiones anteriores o ciertas instalaciones mínimas pueden utilizar sistemas de inicio alternativos como SysVinit o Upstart.

Compartir

Más del blog

Sigue leyendo.

Las mejores aplicaciones autohospedadas que puede ejecutar con Imagen de portada de Cosmos Cloud con paneles de aplicaciones alrededor de un panel de Cosmos.
Servidores y SO

Las mejores aplicaciones autohospedadas que puede ejecutar con Cosmos Cloud: archivos, medios, contraseñas, automatización y más.

Tal vez hayas configurado Cosmos Cloud y ahora quieras ver qué aplicaciones combinan bien con él, o tal vez aún no te hayas decidido por Cosmos y solo quieras ver qué tan bien se adapta a tu trabajo.

Nick PlataNick Plata 16 minutos de lectura
Portainer vs Cosmos Cloud para administrar aplicaciones Docker cubren un diagrama de configuración híbrida y operaciones de neón frente a bloques de acceso.
Servidores y SO

Portainer vs Cosmos Cloud: la mejor opción para la gestión de aplicaciones Docker

Si ya conoce Docker y solo desea una forma más limpia de ejecutar una pila de aplicaciones en crecimiento, aquí está la respuesta breve a Portainer vs Cosmos Cloud. Portainer es la elección más fuerte para la dirección

Nick PlataNick Plata 14 minutos de lectura
Gráfico de características de Cosmos Cloud, CasaOS y Umbrel que muestra tres rutas autohospedadas dentro de un mundo abstracto de red en la nube.
Servidores y SO

Cosmos Cloud vs CasaOS vs Umbrel: ¿Qué plataforma autohospedada se adapta a su configuración?

La respuesta corta es que CasaOS sigue siendo el lugar más fácil para comenzar, Umbrel tiene la sensación más limpia y Cosmos Cloud tiene más sentido una vez que desea un control más estricto sobre el dominio.

Nick PlataNick Plata 11 minutos de lectura

¿Listo para implementar? Desde $2,48/mes.

Nube independiente, desde 2008. AMD EPYC, NVMe, 40 Gbps. Devolución de dinero en 14 días.