50 % de réduction sur tous les plans, durée limitée. À partir de $2.48/mo
7 min restantes
Serveurs et OS

Comment corriger l'erreur systemctl : Command Not Found sur Ubuntu

Nick Argent By Nick Argent 7 min de lecture Mis à jour le 20 févr. 2025
comment corriger l'erreur systemctl: command not found

L'un des outils les plus utiles pour les utilisateurs de Linux, notamment sur les distributions modernes comme Ubuntu, est la commande systemctl. Cet utilitaire en ligne de commande sert principalement à interagir avec systemd, le gestionnaire de système et de services.

Grâce à cette commande, vous pouvez gérer les services système, consulter leur état, les démarrer ou les arrêter, et les activer ou désactiver au démarrage. Très pratique, non ? Mais si la commande systemctl est introuvable ou non reconnue, vous vous retrouverez face à l'erreur "sudo:systemctl: command not found" .

Voyons ce que signifie l'erreur "systemctl: command not found", les différentes raisons pour lesquelles vous la rencontrez, et comment la corriger.

Que signifie l'erreur systemctl : command not found ?

En clair, l'erreur "systemctl: command not found" indique que l'utilitaire systemctl n'est pas disponible ou accessible dans l'environnement actuel. Cela peut avoir plusieurs causes, qui se résument à deux situations : soit l'environnement n'est pas un environnement système standard, soit le paquet systemd n'est pas installé.

Concrètement, soit le paquet systemd n'est pas installé, soit votre distribution ou version de Linux n'utilise pas systemd et repose sur d'anciens systèmes de gestion des services comme init.d. Une autre possibilité : la variable d'environnement PATH n'inclut pas le répertoire où se trouve systemctl, ce qui empêche votre shell de le localiser.

Maintenant que vous avez une idée de ce qui pourrait causer l'erreur « systemctl: command not found » sur votre système, voyons comment identifier la source du problème et le résoudre.

Résoudre l'erreur systemctl: Command Not Found

Dans les étapes suivantes, nous allons vérifier si systemd est installé sur votre système et si systemctl est disponible, ainsi que contrôler le PATH de systemctl. Une fois le problème identifié, nous prendrons les mesures nécessaires pour le corriger.

1. Vérifier si votre système utilise systemd

Comme Ubuntu systemctl ne fonctionne que si le paquet systemd est installé, nous allons d'abord vérifier si votre système est censé utiliser systemd en exécutant la commande suivante :

ps -p 1 -o comm=

Vous pouvez aussi vérifier la version de systemd avec la commande suivante :

systemd --version

Si la sortie affiche systemd, alors systemd est votre système d'initialisation et Ubuntu systemctl devrait être installé. En revanche, si la sortie affiche init ou un autre gestionnaire de processus, cela signifie que votre système utilise un système d'initialisation alternatif, et systemctl ne fonctionnera pas tant que vous n'aurez pas migré vers systemd.

Si vous voyez des systèmes d'initialisation plus anciens comme Upstart ou SysVinit et souhaitez passer à systemd pour utiliser systemctl, suivez ces étapes :

1. Installez systemctl en installant systemd à l'aide de la commande suivante :

sudo apt install systemd-sysv

2. Redémarrez votre système en exécutant cette commande :

sudo reboot

3. Vérifiez que votre système utilise bien maintenant systemd :

ps -p 1 -o comm=

La sortie devrait maintenant afficher systemd.

2. S'assurer que systemd est correctement installé

Dans des conditions normales, lorsque systemd est installé et fonctionne comme système d'initialisation, la commande systemctl devrait fonctionner correctement. Si ce n'est pas le cas, cela signifie que le paquet systemd est absent ou mal installé.

Notez que si vous utilisez une version minimale de Ubuntu, comme un conteneur Docker ou une instance cloud, systemd n'est peut-être pas installé par défaut. Pour installer systemctl via l'installation de systemd, exécutez les commandes suivantes :

sudo apt update
sudo apt install systemd

Une fois installé, vérifiez que la commande systemctl est disponible.

3. Vérifier le PATH de systemctl

Un problème courant lié à l'erreur systemctl not found est que systemctl peut être installé sans pour autant figurer dans le PATH de votre système. Pour vérifier si les binaires de systemd sont présents dans les répertoires habituels, comme /bin, /usr/bin ou /usr/local/bin, utilisez la commande suivante :

which systemctl

Si systemctl est trouvé dans l'un des répertoires listés dans le PATH, vous obtiendrez une sortie de ce type :

/usr/bin/systemctl

Si systemctl n'est trouvé dans aucun des répertoires du PATH, la commande which ne retournera rien.

Cependant, systemctl peut ne pas fonctionner même s'il est trouvé dans vos répertoires. En effet, systemctl peut se trouver dans un répertoire qui n'est pas inclus dans le PATH. Dans ce cas, vous devrez vérifier si le répertoire où se trouve systemctl fait partie de votre PATH en exécutant la commande suivante :

echo $PATH

La sortie devrait ressembler à ceci :

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Il vous suffit ensuite de vérifier si le répertoire dans lequel se trouve systemctl (obtenu via la commande which) figure parmi les répertoires listés dans la sortie de la commande echo $PATH.

Si le répertoire de systemctl n'apparaît pas dans la sortie de echo $PATH, vous devrez l'ajouter à votre variable PATH. Pour ce faire, exécutez la commande suivante :

Pour Utilisateurs du shell Bash, ouvrez le fichier ~/.bashrc dans un éditeur de texte :

nano ~/.bashrc

Ajoutez la ligne suivante à la fin du fichier :

export PATH=$PATH:/usr/bin

/usr/bin est un répertoire typique où se trouve systemctl dans cet exemple.

Enregistrez ensuite le fichier en appuyant sur CTRL + X, puis Y pour confirmer, et Entrée pour valider.

Pour Utilisateurs de Zsh, ouvrez le fichier ~/.zshrc dans un éditeur de texte :

nano ~/.zshrc

Ajoutez la ligne suivante à la fin du fichier :

export PATH=$PATH:/usr/bin

/usr/bin est un répertoire typique où se trouve systemctl dans cet exemple.

Enregistrez ensuite le fichier en appuyant sur CTRL + X, puis Y pour confirmer, et Entrée pour valider.

Une fois ces étapes terminées, utilisez la commande echo $PATH pour vérifier que le répertoire de systemctl a bien été ajouté à votre PATH. Vous devriez maintenant pouvoir exécuter systemctl sans rencontrer l'erreur « systemctl: command not found ».

4. Réinstaller systemd

Si les corrections précédentes n'ont pas fonctionné et que vous rencontrez toujours l'erreur command not found, réinstaller systemd complètement peut résoudre le problème. Pour ce faire, exécutez les commandes suivantes :

sudo apt purge systemd
sudo apt install systemd

Ensuite, redémarrez votre système avec cette commande :

sudo reboot

Vérifiez que systemctl fonctionne correctement.

5. Vérifier que systemd est correctement configuré

Le problème vient parfois d'une installation mal configurée de systemd, ce qui entraîne l'erreur « systemctl: command not found ». Pour corriger cela, il suffit d'exécuter la commande suivante :

sudo dpkg-reconfigure systemd

6. Sous-système Windows pour Linux (WSL) obsolète

Si vous utilisez Ubuntu sous WSL (sous-système Windows pour Linux) sachez que les anciennes versions de WSL, comme WSL 1, ne prennent pas en charge systemctl nativement. Aucune des corrections précédentes ne vous permettra donc d'exécuter systemctl.

Pour utiliser les fonctionnalités de systemctl, vous devrez passer à WSL 2, qui offre une meilleure prise en charge de systemd. Si vous n'êtes pas sûr d'utiliser WSL, vérifiez-le avec la commande suivante :

uname -a

Si la sortie mentionne WSL, c'est la raison pour laquelle vous voyez l'erreur « systemctl: command not found ».

7. Utiliser sudo service comme alternative à systemctl

Si vous obtenez l'erreur « systemctl: command not found » parce que votre système n'utilise pas systemd, vous pouvez gérer vos services avec la commande sudo service. Cette commande fonctionne avec les anciens systèmes d'init comme SysVinit ou Upstart. Elle est particulièrement utile sur les systèmes Ubuntu qui s'appuient sur des scripts d'init plutôt que sur systemd.

Par exemple, pour démarrer un service, exécutez :

sudo service <service_name> start

Conclusion

systemd et son utilitaire en ligne de commande systemctl ont remplacé la plupart des anciens systèmes d'init comme SysVinit et Upstart. Bien que systemd ne fasse pas l'unanimité en raison de sa conception monolithique et de sa philosophie non-Unix, il reste le choix le plus répandu. Vous devriez maintenant avoir résolu votre erreur systemctl command not available : ne pas pouvoir utiliser l'utilitaire en ligne de commande de systemd en limite considérablement les capacités.

Questions fréquemment posées

Qu'est-ce que systemctl et que signifie l'erreur systemctl: command not found ?

systemctl est un outil en ligne de commande permettant de gérer les services sur les systèmes Linux exécutant systemd, comme Ubuntu. L'erreur « systemctl: command not found » apparaît lorsque l'outil n'est pas disponible ou accessible, généralement parce que le système n'utilise pas systemd ou que le paquet systemd n'est pas installé.

Ubuntu dispose-t-il de systemctl dans toutes ses versions ?

Non, systemctl n'est pas disponible dans toutes les versions de Ubuntu. systemctl fait partie du système d'initialisation systemd, qui est le système par défaut dans la plupart des versions modernes de Ubuntu (à partir de la 15.04). Les versions plus anciennes ou certaines installations minimales peuvent utiliser des systèmes d'initialisation alternatifs comme SysVinit ou Upstart.

Partager

À lire sur le blog

Continuez la lecture.

Image de couverture des meilleures applications auto-hébergées compatibles avec Cosmos Cloud, avec des panneaux d'applications autour d'un tableau de bord Cosmos.
Serveurs et OS

Les meilleures applications auto-hébergées compatibles avec Cosmos Cloud : fichiers, médias, mots de passe, automatisation et plus encore !

Maybe vous avez installé Cosmos Cloud et cherchez maintenant des applications qui s'y intègrent bien, ou peut-être que vous n'avez pas encore adopté Cosmos et que vous voulez juste voir si ça correspond à votre flux de trava

Nick ArgentNick Argent 16 min de lecture
Illustration de couverture pour Portainer vs Cosmos Cloud pour la gestion d'applications Docker, avec un schéma de configuration hybride et des blocs ops/accès en néon.
Serveurs et OS

Portainer vs Cosmos Cloud : quelle solution pour gérer vos applications Docker ?

Si vous connaissez déjà Docker et cherchez simplement la meilleure façon de gérer une pile applicative en croissance, voici la réponse directe à la question Portainer vs Cosmos Cloud. Portainer est le choix le plus solide pour une gest

Nick ArgentNick Argent 14 min de lecture
Illustration principale pour Cosmos Cloud vs CasaOS vs Umbrel, montrant trois approches auto-hébergées au sein d'un réseau cloud abstrait.
Serveurs et OS

Cosmos Cloud vs CasaOS vs Umbrel : quelle plateforme auto-hébergée correspond à votre configuration ?

En bref : CasaOS reste le point de départ le plus accessible, Umbrel offre l'expérience la plus soignée et la mieux organisée, et Cosmos Cloud devient le meilleur choix dès que vous souhaitez un contrôle plus fin sur les dom

Nick ArgentNick Argent 11 min de lecture

Prêt à déployer ? À partir de 2,48 $/mois.

Cloud indépendant, depuis 2008. AMD EPYC, NVMe, 40 Gbps. Remboursement sous 14 jours.