Cómo corregir el error "Systemctl Command Not Found" en Linux

Una solución rápida para resolver el problema con el comando "systemctl" y la introducción de algunas alternativas eficientes.

systemctl al ser una utilidad importante en el ecosistema de Linux, es muy común que encuentre un problema de error "systemctl: comando no encontrado" cuando intente ejecutar el systemctl mando. Puede que este no sea el caso de todas las distribuciones de Linux, pero probablemente pueda encontrar este error cuando esté utilizando una versión anterior de la distribución de Linux que no es compatible con systemctl mando.

El problema que se le presenta es un problema muy común y se puede solucionar fácilmente. Por lo tanto, no se preocupe en absoluto y simplemente siga el tutorial completo para encontrar una solución rápida y fácil.

Primero intentaremos comprender el problema y luego solucionarlo.

Penetraciones en systemctl y systemd

Como el error se refiere a la systemctl comando, sería bueno conocer los conceptos básicos de este comando para comprender mejor la solución a este error.

systemctl es una utilidad de línea de comandos que ofrece Linux, que se utiliza para monitorear y controlar otra utilidad de línea de comandos llamada "systemd". También inspecciona y controla el administrador del sistema junto con el "systemd"Utilidad.

Sintaxis general:

systemctl [opción] [nombre]

systemd es un paquete de demonios, bibliotecas y utilidades que controla los programas que se ejecutan cuando se inicia el sistema. systemd también se las arregla para iniciar un trabajo importante como iniciar un diario de actividad del sistema.

Esta utilidad funciona como la utilidad de administración central para la mayoría, si no todos, de los sistemas operativos basados ​​en Linux.

Causa raíz del error

La causa más probable de este error puede ser que esté utilizando una versión anterior de la distribución de Linux. Muchas de las versiones anteriores utilizan SysV init en vez de systemd utilidad.

systemd La utilidad está ausente en las versiones anteriores de Linux, ya que es una adición reciente a la canasta de utilidades proporcionadas por Linux. systemctl es compatible para funcionar y monitorear con el systemd utilidad y no funcionará con las configuraciones anteriores como SysVen eso o Advenedizo.

Si no está utilizando systemd, entonces se espera este error. Es tan simple y directo como eso.

Puede encontrar este error de la siguiente manera.

gaurav @ ubuntu: ~ $ sudo systemctl start ufw [sudo] contraseña para gaurav: sudo: systemctl: comando no encontrado gaurav @ ubuntu: ~ $ 

Aquí, intentamos iniciar Ubuntu Fire Wall (ufw) utilizando el systemctl comando y encontró el error "systemctl: comando no encontrado".

Entonces, ¿qué hacer ahora si no desea cambiar su distribución de Linux actual que está utilizando alguna otra utilidad de administración central que no sea systemd? Bueno, tenemos una solución rápida para usted que le permitiría mantener su distribución actual de Linux y corregir su error en poco tiempo.

Observemos la solución ahora.

Arreglando el error "systemctl: comando no encontrado"

Finalmente, veamos ahora la solución del problema en cuestión después de analizar las causas y los hechos básicos sobre el problema.

Arreglo 1: Reemplazo systemctl con Servicio mando

Una solución sencilla para el error en cuestión es utilizar el Servicio comando en lugar del error que causa systemctl mando.

Servicio El comando ayuda a ejecutar el SystemV init script que utilizan las distribuciones de Linux más antiguas. Si no desea instalar el systemd utilidad en su sistema, esta solución seguramente funcionará para usted.

Puede iniciar, reiniciar o detener cualquier servicio y demonio en su distribución de Linux utilizando el Servicio mando.

El Servicio comando y el systemctl El comando funciona de la misma manera, la única diferencia aquí es la compatibilidad del comando con las utilidades que son responsables del buen funcionamiento de su sistema.

Veamos el Servicio comando con una ilustración.

Sintaxis general:

servicio sudo [nombre_servicio] [acción]

En la sintaxis anterior, el [acción] el espacio puede incluir acciones como comienzo, detener, reiniciar o estado.

Ejecutaremos el mismo comando para iniciar el ufw servicio usando el Servicio mando.

sudo service ufw start

Producción:

gaurav @ ubuntu: ~ $ sudo service ufw start gaurav @ ubuntu: ~ $ sudo service ufw status ● ufw.service - Cortafuegos no complicado Cargado: cargado (/lib/systemd/system/ufw.service; habilitado; preset del proveedor: enab Activo: activo (salido) desde Mon 2020-09-28 11:22:34 IST; hace 1h 5min Docs: man: ufw (8) Proceso: 333 ExecStart = / lib / ufw / ufw-init start silencioso (código = salido, estado = 0 / SU PID principal: 333 (código = salido, estado = 0 / ÉXITO) 28 de septiembre 11:22:34 ubuntu systemd [1]: iniciado Cortafuegos sin complicaciones. Advertencia: El diario se ha rotado desde que se inició la unidad. La salida del registro es incompleto

Aquí el Servicio se utiliza el comando en lugar del systemctl comando y funcionó absolutamente bien.

Veamos un ejemplo más de la Servicio comando para obtener una comprensión adecuada de la misma.

sudo service apache2 start

Producción:

gaurav @ ubuntu: ~ $ sudo service apache2 status ● apache2.service - El servidor HTTP Apache cargado: cargado (/lib/systemd/system/apache2.service; habilitado; preset del proveedor: Drop-In: / lib / systemd / system / apache2.service.d └─apache2-systemd.conf Activo: activo (en ejecución) desde el lunes 28 de septiembre de 2020 11:22:47 IST; hace 1h 16min Proceso: 1172 ExecStart = / usr / sbin / apachectl start (código = salido, estado = 0 / SUCCE PID principal: 1248 (apache2) Tareas: 55 (límite: 4456) CGroup: /system.slice/apache2.service ├─1248 / usr / sbin / apache2 -k start ├─1249 / usr / sbin / apache2 -k start └─1250 / usr / sbin / apache2 -k start 28 de septiembre 11:22:43 ubuntu systemd [1]: Iniciando el servidor HTTP Apache ... 28 de septiembre 11:22:47 ubuntu apachectl [1172 ]: AH00112: Advertencia: DocumentRoot [/ var / www 28 de septiembre 11:22:47 ubuntu apachectl [1172]: AH00558: apache2: No se pudo detener de manera confiable el 28 de septiembre 11:22:47 ubuntu systemd [1]: inició el HTTP Apache Servidor. Gaurav @ ubuntu: ~ $ 

Hemos utilizado el Servicio comando para iniciar la utilidad apache2. Utilizando el estado opción con la Servicio El comando mostrará el estado actual del servicio. Obtendremos los detalles si se está ejecutando o está muerto (inactivo).

Usemos ahora el detener acción para detener el servicio apache2 usando el Servicio mando.

gaurav @ ubuntu: ~ $ sudo service apache2 stop gaurav @ ubuntu: ~ $ sudo service apache2 status lines 1--1 ... skipping ... ● apache2.service - El servidor HTTP Apache cargado: cargado (/ lib / systemd / system / apache2.service; habilitado; preset del proveedor: habilitado) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Activo: inactivo (muerto) desde el lunes 28 de septiembre de 2020 12 : 42: 06 IST; Hace 1s Proceso: 4928 ExecStop = / usr / sbin / apachectl stop (código = salido, estado = 0 / SUCCESS) Proceso: 1172 ExecStart = / usr / sbin / apachectl start (código = salido, estado = 0 / SUCCESS) PID principal : 1248 (código = salido, estado = 0 / ÉXITO) 28 de septiembre 11:22:43 ubuntu systemd [1]: Iniciando el servidor HTTP Apache ... 28 de septiembre 11:22:47 ubuntu apachectl [1172]: AH00112: Advertencia : DocumentRoot [/ var / www / html] no existe Sep 28 11:22:47 ubuntu apachectl [1172]: AH00558: apache2: No se pudo determinar de manera confiable el nombre de dominio completo del servidor, usando :: 1. Establezca el 'S 28 de septiembre 11:22:47 ubuntu systemd [1]: inició el servidor HTTP Apache.

De los ejemplos detallados explicados anteriormente, podemos concluir que podemos usar este comando en lugar del systemctl comando para controlar y monitorear otros demonios y servicios bajo la distribución de Linux.

Arreglo 2: Comprobando systemd paquete

En algún momento puede darse el caso de que solo el systemd la instalación del paquete puede solucionar el problema. Primero, debe verificar el estado de instalación del systemd paquete en su sistema.

Utilice el siguiente comando para verificar el paquete en su sistema.

sudo dpkg -l | grep systemd

Si el systemd utilty ya está instalado, obtendrá una salida similar a la que se muestra a continuación.

gaurav @ ubuntu: ~ $ sudo dpkg -l | grep systemd [sudo] contraseña para gaurav: ii dbus-user-session 1.12.2-1ubuntu1.2 amd64 sistema de mensajería simple entre procesos (systemd - integración de usuario) ii libnss-systemd: amd64 237-3ubuntu10.42 amd64 módulo nss que proporciona dinámica resolución de nombre de usuario y grupo ii libpam-systemd: amd64 237-3ubuntu10.42 administrador de sistema y servicio amd64 - módulo PAM ii libsystemd0: amd64 237-3ubuntu10.42 amd64 biblioteca de utilidades systemd ii libsystemd0: i386 237-3ubuntu10.42 i386 biblioteca de utilidades systemd ii networkd-dispatcher 1.7-0ubuntu3.3 todo el servicio Dispatcher para systemd-networkd cambios de estado de conexión ri python3-systemd 234-1build1 amd64 Enlaces de Python 3 para systemd ii systemd 237-3ubuntu10.42 amd64 system and service manager ii systemd-sysv 237- 3ubuntu10.42 administrador de servicios y sistema amd64 - enlaces SysV gaurav @ ubuntu: ~ $ 

Si obtiene una salida similar a esta, significa que systemd está instalado en su sistema.

Si no está instalado, puede instalarlo de la siguiente manera.

sudo apt-get update
sudo apt-get install systemd

Si está instalado y el error persiste, intente reinstalarlo con el siguiente comando.

sudo apt-get install - reinstalar systemd

Esto resolverá su problema instalando el systemd utilidad.

Conclusión

Aprendimos a arreglar el "systemctl: comando no encontrado" en este tutorial. Podemos concluir con seguridad que utilizando el Servicio comando en lugar del systemctl es una buena idea y resuelve muy bien el problema. Podemos usar fácilmente el Servicio comando después de comprender los ejemplos ilustrativos que se muestran en el tutorial.