Une solution rapide pour résoudre le problème avec la commande « systemctl » et l'introduction d'alternatives efficaces à celle-ci
systemctl
étant un utilitaire important dans l'écosystème Linux, il est très courant que vous rencontriez un problème d'erreur "systemctl: command not found" lorsque vous essayez d'exécuter le systemctl
commander. Ce n'est peut-être pas le cas pour toutes les distributions de Linux, mais vous pouvez probablement rencontrer cette erreur lorsque vous utilisez une ancienne version de la distribution Linux qui ne prend pas en charge le systemctl
commander.
Le problème qui vous arrive est un problème très courant et peut être facilement résolu. Alors, ne vous inquiétez pas du tout et parcourez simplement le didacticiel complet pour trouver une solution rapide et facile.
Nous essaierons d'abord de comprendre le problème, puis de le résoudre.
Aperçus sur systemctl
et systemd
Comme l'erreur se rapporte à la systemctl
commande, il serait bon de connaître les bases de cette commande pour mieux comprendre le correctif de cette erreur.
systemctl
est un utilitaire de ligne de commande offert par Linux, qui est utilisé pour surveiller et contrôler un autre utilitaire de ligne de commande nommé 'systemd
'. Il inspecte et contrôle également le gestionnaire du système ainsi que le « systemd
'utilité.
Syntaxe générale:
systemctl [option] [nom]
systemd
est un ensemble de démons, de bibliothèques et d'utilitaires qui contrôlent les programmes qui s'exécutent lorsque votre système démarre. systemd
parvient également à lancer un travail important comme le démarrage d'un journal de l'activité du système.
Cet utilitaire fonctionne comme l'utilitaire de gestion central pour la plupart sinon tous les systèmes d'exploitation basés sur Linux.
Cause racine de l'erreur
La cause la plus probable de cette erreur peut être que vous utilisez une ancienne version de la distribution Linux. La plupart des anciennes versions utilisent le Init SysV
à la place du systemd
utilitaire.
systemd
L'utilitaire est absent des versions précédentes de Linux car il s'agit d'un ajout récent au panier d'utilitaires fournis par Linux. systemctl
est compatible pour fonctionner et surveiller avec le systemd
utilitaire et ne fonctionnera pas avec les configurations précédentes comme SysV
init
ou Parvenu
.
Si vous n'utilisez pas systemd
, alors cette erreur est attendue. C'est aussi simple et direct que cela.
Vous pouvez rencontrer cette erreur de la manière suivante.
gaurav@ubuntu:~$ sudo systemctl start ufw [sudo] mot de passe pour gaurav: sudo: systemctl: command not found gaurav@ubuntu:~$
Ici, nous avons essayé de démarrer le mur pare-feu Ubuntu (euh
) en utilisant le systemctl
commande et a rencontré l'erreur "systemctl: command not found".
Alors, que faire maintenant si vous ne souhaitez pas modifier votre distribution Linux actuelle qui utilise un autre utilitaire de gestion centrale autre que systemd
? Eh bien, nous avons une solution rapide pour vous qui vous permettrait de conserver votre distribution Linux actuelle et de corriger votre erreur en un rien de temps.
Observons maintenant le correctif.
Correction de l'erreur « systemctl : commande non trouvée »
Enfin, examinons maintenant la solution du problème en question après avoir analysé les causes et les faits de base sur le problème.
Correctif 1 : Remplacement systemctl
avec un service
commander
Une solution simple pour l'erreur en question consiste à utiliser le un service
commande au lieu de l'erreur provoquant systemctl
commander.
un service
La commande aide à exécuter le Init SystemV
script qui est utilisé par les anciennes distributions Linux. Si vous ne souhaitez pas installer le systemd
utilitaire sur votre système, ce correctif fonctionnera sûrement pour vous.
Vous pouvez démarrer, redémarrer ou arrêter tous les services et démons de votre distribution Linux en utilisant le un service
commander.
le un service
commande et le systemctl
commande fonctionne de la même manière, la seule différence ici est la compatibilité de la commande avec les utilitaires qui sont responsables du bon fonctionnement de votre système.
Voyons le un service
commande avec une illustration.
Syntaxe générale :
service sudo [nom_service] [action]
Dans la syntaxe ci-dessus, le [action]
l'espace peut inclure des actions comme début
, arrêter
, redémarrage
ou statut
.
Nous exécuterons la même commande pour démarrer le euh
service en utilisant le un service
commander.
service sudo ufw démarrer
Sortir:
gaurav@ubuntu:~$ sudo service ufw start gaurav@ubuntu:~$ sudo service ufw status ● ufw.service - Pare-feu simple Chargé : chargé (/lib/systemd/system/ufw.service ; activé ; préréglage du fournisseur : enab Actif : actif (sorti) depuis le lun. 2020-09-28 11:22:34 IST ; il y a 1h 5min Docs : man:ufw(8) Processus : 333 ExecStart=/lib/ufw/ufw-init start quiet (code=exited, status =0/SU PID principal : 333 (code=exited, status=0/SUCCESS) Sep 28 11:22:34 ubuntu systemd[1] : Démarré Pare-feu non compliqué. Avertissement : Le journal a été tourné depuis le démarrage de l'unité. La sortie du journal est incomplet
Ici le un service
la commande est utilisée à la place de la systemctl
commande et cela a parfaitement fonctionné.
Voyons un autre exemple de la un service
commande pour bien la comprendre.
démarrage du service sudo apache2
Sortir:
gaurav@ubuntu:~$ sudo service apache2 status ● apache2.service - Le serveur HTTP Apache chargé : chargé (/lib/systemd/system/apache2.service ; activé ; préréglage du fournisseur : Drop-In : /lib/systemd/system/ apache2.service.d └─apache2-systemd.conf Actif : actif (en cours d'exécution) depuis le lun. 2020-09-28 11:22:47 IST ; il y a 1h 16min Processus : 1172 ExecStart=/usr/sbin/apachectl start (code= terminé, status=0/SUCCE PID principal : 1248 (apache2) Tâches : 55 (limite : 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 septembre 11:22:43 ubuntu systemd[1]: Démarrage du serveur HTTP Apache... 28 septembre 11:22:47 ubuntu apachectl[1172 ] : AH00112 : Avertissement : DocumentRoot [/var/www Sep 28 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: Impossible de détecter de manière fiable le 28 septembre 11:22:47 ubuntu systemd[1]: Démarrage du HTTP Apache Serveur. gaurav@ubuntu:~$
Nous avons utilisé le un service
commande pour démarrer l'utilitaire apache2. En utilisant le statut
option avec le un service
La commande affichera l'état actuel du service. Nous obtiendrons les détails s'il est en cours d'exécution ou s'il est mort (inactif).
Utilisons maintenant le arrêter
action pour arrêter le service apache2 en utilisant le un service
commander.
gaurav@ubuntu:~$ sudo service apache2 stop gaurav@ubuntu:~$ sudo service apache2 status lines 1--1...saut... ● apache2.service - Le serveur HTTP Apache chargé : chargé (/lib/systemd/ system/apache2.service ; activé ; préréglage du fournisseur : activé) Drop-In : /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Actif : inactif (mort) depuis lun 2020-09-28 12 :42:06 IST ; Il y a 1 s Processus : 4928 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS) Process : 1172 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) PID principal : 1248 (code=exited, status=0/SUCCESS) 28 sept 11:22:43 ubuntu systemd[1]: Démarrage du serveur HTTP Apache... 28 sept 11:22:47 ubuntu apachectl[1172]: AH00112: Avertissement : DocumentRoot [/var/www/html] n'existe pas le 28 septembre 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: Impossible de déterminer de manière fiable le nom de domaine complet du serveur, en utilisant ::. Définissez le 'S Sep 28 11:22:47 ubuntu systemd[1]: Started The Apache HTTP Server.
À partir des exemples détaillés expliqués ci-dessus, nous pouvons conclure que nous pouvons utiliser cette commande au lieu de la systemctl
commande pour contrôler et surveiller d'autres démons et services sous la distribution Linux.
Correctif 2: Vérification de systemd
paquet
Parfois, il se peut que seuls les systemd
l'installation du package peut résoudre le problème. Tout d'abord, vous devez vérifier l'état de l'installation du systemd
package sur votre système.
Utilisez la commande suivante pour vérifier le package sur votre système.
sudo dpkg -l | grep systemd
Si la systemd
utilty est déjà installé, vous obtiendrez une sortie similaire à celle indiquée ci-dessous.
gaurav@ubuntu:~$ sudo dpkg -l | grep systemd [sudo] mot de passe pour gaurav: ii dbus-user-session 1.12.2-1ubuntu1.2 amd64 système de messagerie interprocessus simple (systemd --user integration) ii libnss-systemd:amd64 237-3ubuntu10.42 amd64 module nss fournissant un module dynamique résolution des noms d'utilisateur et de groupe ii libpam-systemd:amd64 237-3ubuntu10.42 gestionnaire de système et de service amd64 - module PAM ii libsystemd0:amd64 237-3ubuntu10.42 bibliothèque d'utilitaires amd64 systemd ii libsystemd0:i386 237-3ubuntu10.42 bibliothèque d'utilitaires i386 systemd ii networkd-dispatcher 1.7-0ubuntu3.3 tous les services Dispatcher pour les changements d'état de connexion systemd-networkd ri python3-systemd 234-1build1 amd64 Python 3 liaisons pour systemd ii systemd 237-3ubuntu10.42 système amd64 et gestionnaire de services ii systemd-sysv 237- Gestionnaire de système et de service 3ubuntu10.42 amd64 - Liens SysV gaurav@ubuntu:~$
Si vous obtenez une sortie similaire à celle-ci, cela signifie que systemd
est installé sur votre système.
S'il n'est pas installé, vous pouvez l'installer de la manière suivante.
sudo apt-get mise à jour
sudo apt-get install systemd
S'il est installé et que l'erreur persiste, essayez de le réinstaller à l'aide de la commande suivante.
sudo apt-get install --reinstall systemd
Cela résoudra votre problème en installant le systemd
utilitaire.
Conclusion
Nous avons appris à corriger le "systemctl: command not found" dans ce tutoriel. Nous pouvons conclure en toute sécurité que l'utilisation de la un service
commande au lieu de systemctl
est une bonne idée et résout très bien le problème. Nous pouvons facilement utiliser le un service
après avoir compris les exemples illustratifs présentés dans le didacticiel.