Comment résoudre le problème de commande SystemCTL introuvable ?

L'erreur "systemctl command not found" survient généralement sous Linux lorsque systemd n'est pas installé, nécessitant des alternatives selon le système d'initialisation utilisé.

L'erreur "systemctl command not found" se produit généralement lorsque vous utilisez un système d'exploitation Linux qui utilise un autre système d'initialisation comme runit, SystemV, etc. Le système d'initialisation SystemV est généralement utilisé dans les anciennes versions de Linux, principalement dans les versions d'Ubuntu avant 15.04. Cependant, certains systèmes d'exploitation Linux modernes utilisent d'autres systèmes d'initialisation que systemd, comme Artix Linux qui est basé sur Arch Linux mais utilise d'autres systèmes d'initialisation comme runit, dinit, etc. au lieu de systemd.

Qu'est-ce qu'un système d'initialisation ?

Le système d'initialisation est le premier processus qui s'exécute après le démarrage de votre noyau. Il existe plusieurs systèmes d'initialisation pour Linux, mais le plus populaire est systemd, utilisé dans de nombreux systèmes d'exploitation Linux majeurs. Systemd est un ensemble de démons et de bibliothèques qui contrôle tous les autres démons et bibliothèques, par exemple, en démarrant ou en arrêtant un démon, en activant ou en désactivant un démon. Un démon sous Linux équivaut à un service sous Windows, qui s'exécute en arrière-plan.

Comment réparer l'erreur "systemctl command not found" dans les distributions Linux :

Pour corriger cette erreur, vous avez deux choix.

  • Installez systemd et remplacez votre système d'initialisation actuel par systemd. L'erreur "systemctl command not found" se produit parce que vous n'avez pas systemd installé sur votre système.
  • Utilisez le système d'initialisation que votre distribution Linux a pour gérer différents démons/services. Cette solution est pour ceux d'entre vous qui n'ont pas systemd installé mais ne souhaitent pas l'installer sur leur machine ou si systemd n'est pas disponible dans les dépôts de votre distribution.

1. Installer systemd (si non installé) :

Si vous utilisez un système d'exploitation basé sur Debian/Ubuntu, vous pouvez saisir une commande pour vérifier si systemd est installé ou non.

Tapez cette commande si vous utilisez des systèmes d'exploitation basés sur Ubuntu ou Debian et appuyez sur Entrée.

sudo dpkg -l | grep systemd.

Pour les distributions basées sur Arch Linux, utilisez cette commande :

pacman -Qs systemd

Si vous voyez du texte comme résultat de cette commande, cela signifie que systemd est installé sur votre système et peut être corrompu.

Vous devez alors réinstaller systemd pour que la commande systemctl fonctionne.

Pour ce faire, saisissez cette commande dans un terminal et appuyez sur Entrée.

sudo apt-get install --reinstall systemd.

Cela va réinstaller systemd avec le gestionnaire de paquets apt utilisé par les distributions basées sur Debian/Ubuntu.

Pour Arch Linux ou ses dérivés, utilisez cette commande :

sudo pacman -S systemd

Si vous n'avez reçu aucune sortie de la commande sudo dpkg -l | grep systemd ci-dessus, cela signifie que systemd n'est pas installé sur votre distribution.

Dans ce cas, vous pouvez soit utiliser le système d'initialisation que votre distribution a ou installer systemd.

Pour installer systemd sur les distributions basées sur Debian/Ubuntu, tapez cette commande dans un terminal et appuyez sur Entrée :

sudo apt-get install systemd

Pour Arch Linux, tapez pacman -S systemd en tant qu'utilisateur root ou en utilisant sudo.

Cela installera systemd sur votre système d'exploitation. Vous pourrez maintenant utiliser la commande systemctl sans aucune erreur.

2. Utiliser le système d'initialisation de votre distribution :

Une autre solution, et de préférence la meilleure pour cette erreur, est de utiliser le système d'initialisation que votre distribution Linux a déjà pour gérer les démons/services.

Pour voir quel système d'initialisation votre ordinateur utilise, vous pouvez taper cette commande dans un terminal et appuyer sur Entrée.

ls -l /sbin/init

Le /sbin/init est un lien symbolique vers le système d'initialisation que votre distribution Linux utilise. Si vous voyez le lien symbolique de /sbin/init vers /lib/sysvinit/init, cela signifie que votre distribution utilise le système d'init sysv et que vous devrez utiliser la commande service au lieu de systemctl pour gérer les services ou démons.

La syntaxe du système d'init sysv pour gérer les services est également assez simple :

service [nom_service] [action]

Vous pouvez ainsi démarrer un service en tapant service [nom_service] start.

Par exemple :

Si vous souhaitez démarrer le démon/service bluetooth, vous pouvez taper la commande :

sudo service bluetooth start.

Ensuite, pour vérifier s'il fonctionne sans erreurs, vous pouvez taper la commande

sudo service bluetooth status

Si vous souhaitez redémarrer ou arrêter un service, vous pouvez utiliser les commandes service [nom-du-service] restart et “service [nom-du-service] stop respectivement.

Par exemple, si vous voulez arrêter le service bluetooth, vous pouvez taper :

sudo service bluetooth stop

Il est possible que votre système d'initialisation ne soit pas sysvinit mais un autre système d'initialisation. Pour cela, il vous suffit de faire une simple recherche Google sur la sortie du symlink de /sbin/init. Ensuite, vous pouvez utiliser les commandes qui s'appliquent au système d'initialisation de votre machine.

De nombreux systèmes d'initialisation ont généralement les mêmes commandes que start, stop, restart mais les commandes pour les exécuter sont différentes, sysvinit a la commande service pour démarrer ou arrêter des services et systemd a la commande systemctl pour cela.

Si les solutions ci-dessus n'ont pas fonctionné pour vous, continuez à suivre l'article car la solution listée ci-dessous pourrait fonctionner pour vous.

Comment corriger la commande systemd-resolve non trouvée ?

Une autre erreur liée à la commande systemctl statut non trouvée est la commande systemd-resolve non trouvée. Les utilisateurs peuvent se méprendre en pensant qu'ils n'ont pas systemd installé et c'est pourquoi, systemd-resolve ne fonctionne pas. Mais en réalité, dans les versions de systemd 239 et supérieure, la commande systemd-resolve a été remplacée par resolvectl.

Vous pouvez donc utiliser “resolvectl ” pour interagir avec l'utilitaire systemd-resolve dans vos distributions linux.

Questions et réponses que vous devez connaître

Pourquoi systemctl n'est-il pas trouvé ?

L'erreur « systemctl : commande introuvable » peut survenir pour plusieurs raisons :

    • -

Absence de systemd

    : Votre système peut utiliser un autre système d'initialisation, comme SysVinit ou Upstart, qui ne supporte pas systemctl.
  • Package manquant : Le package « systemd » n'est peut-être pas installé sur votre système. Vérifiez votre gestionnaire de paquets pour l'installer.
  • Problème de chemin : Il est possible que le chemin vers l'exécutable systemctl ne soit pas inclus dans votre variable d'environnement PATH. Vous pouvez vérifier cela en exécutant echo $PATH.
  • Permissions : Si vous n'avez pas les autorisations nécessaires, même avec systemd installé, vous pourriez ne pas être en mesure d'exécuter systemctl. Pour corriger le problème, commencez par identifier quel système d'initialisation votre distribution utilise et assurez-vous que systemd est installé si c'est requis.

Où se trouve Systemctl ?

Systemctl se trouve principalement dans les répertoires suivants :

    • -

Services système

    • :

/etc/systemd/system/

    pour les services globaux.
  • Services utilisateur :
  • /etc/systemd/user/ pour les services à l'échelle de l'utilisateur.
  • $HOME/.config/systemd/user/ pour les services spécifiques à un utilisateur. Pour contrôler les services utilisateur, utilisez la commande : bash systemctl --user Cette commande vous permet de gérer les services qui s'exécutent avec les permissions de l'utilisateur courant.

Quelles commandes utiliser pour redémarrer un service Linux ?

Pour redémarrer un service sous Linux, voici les commandes principales à utiliser :

 

  • Systemd (distribution moderne) :
      • - Pour redémarrer :

    sudo systemctl restart nom_du_service

  • Pour recharger la configuration sans arrêter le service : sudo systemctl reload nom_du_service
  • Pour essayer de recharger ou redémarrer : sudo systemctl reload-or-restart nom_du_service
  • Init.d (distributions plus anciennes) :
  • Pour redémarrer : sudo service nom_du_service restart
  • Pour recharger la configuration : sudo service nom_du_service reload
  • Pour essayer de recharger ou redémarrer : sudo service nom_du_service reload-or-try-restart
  • Autres options :
  • Utiliser sudo restart nom_du_service dans certaines configurations. Assurez-vous de remplacer nom_du_service par le nom réel du service que vous souhaitez redémarrer.

 

Quelle commande utiliserions-nous pour démarrer le même service au démarrage du système ?

Pour démarrer un service au démarrage du système, vous pouvez utiliser la commande suivante : bash sudo systemctl enable nom_du_service ### Vérification de l'activation : Avant de l'activer, il peut être utile de vérifier son état avec : bash systemctl is-enabled nom_du_service ### Étapes à suivre :

 

  • Ouvrir le terminal.
  • Vérifier l'état du service :
      • - Exécutez

    systemctl is-enabled nom_du_service

      .
  • Activer le service si nécessaire :
  • Utilisez sudo systemctl enable nom_du_service pour configurer le service à démarrer automatiquement.
  • Vérifiez à nouveau l'état :
  • Assurez-vous qu'il est maintenant activé avec systemctl is-enabled nom_du_service. Cette méthode garantit que le service sera lancé à chaque démarrage du système.

 

Maintenant que tu as fini de lire Comment résoudre le problème de commande SystemCTL introuvable ?, nous t'invitons à explorer davantage la catégorie Linux. Tu y trouveras d'autres articles intéressants qui élargiront tes connaissances et te tiendront informé. Ne cesse pas de lire et de découvrir plus!

Index
  1. Qu'est-ce qu'un système d'initialisation ?
  • Comment réparer l'erreur "systemctl command not found" dans les distributions Linux :
    1. 1. Installer systemd (si non installé) :
    2. 2. Utiliser le système d'initialisation de votre distribution :
    3. Comment corriger la commande systemd-resolve non trouvée ?
  • Questions et réponses que vous devez connaître
    1. Pourquoi systemctl n'est-il pas trouvé ?
    2. Où se trouve Systemctl ?
    3. Quelles commandes utiliser pour redémarrer un service Linux ?
    4. Quelle commande utiliserions-nous pour démarrer le même service au démarrage du système ?
  • Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Go up