Comment corriger l'erreur "Commande Systemctl introuvable" sous Linux

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 SysVinit 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.