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 SysV
en 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.