Modifier le niveau d’exécution par défaut sur un système Linux requiert de comprendre comment fonctionnent les différents niveaux d’exécution et les fichiers de configuration associés. Ce processus peut impliquer plusieurs méthodes, selon la distribution Linux utilisée et le système d’initialisation en place.
Comprendre les niveaux d’exécution sur Linux
Les niveaux d’exécution, ou runlevels, sont un concept clé dans les systèmes Linux basés sur SysVinit et, dans une certaine mesure, ceux qui utilisent systemd. Chaque niveau a un rôle précis, allant de l’exécution minimale avec un contrôle total par le superutilisateur à des niveaux complets avec interfaces graphiques. Les niveaux traditionnels incluent:
- Niveau 1 : Mode mono-utilisateur, pour les tâches administratives.
- Niveau 3 : Mode multi-utilisateurs avec réseau, sans interface graphique.
- Niveau 5 : Mode multi-utilisateurs avec réseau et interface graphique.
- Niveau 6 : Redémarrage du système.
Comment définir le niveau d’exécution par défaut sous Linux
Pour configurer le niveau d’exécution par défaut, vous allez devoir modifier un fichier de configuration spécifique. Cela dépendra de votre système d’initialisation. Pour les systèmes utilisant SysVinit, le fichier à modifier est généralement /etc/inittab
. En ce qui concerne les systèmes utilisant systemd, vous devrez travailler avec des fichiers d’unité dans /etc/systemd/system/default.target
.
- Accéder au fichier de configuration : Ouvrez un terminal. Pour un système SysVinit, entrez la commande
sudo nano /etc/inittab
. Pour systemd, utilisezsudo nano /etc/systemd/system/default.target
. - Modifier le niveau d’exécution : Pour SysVinit, recherchez la ligne débutant par
id:
et modifiez le nombre suivant pour le niveau d’exécution souhaité. Par exemple, changezid:5:initdefault:
enid:3:initdefault:
pour passer en mode sans interface graphique. Pour systemd, créez ou modifiez un lien symbolique pour définir la cible par défaut. - Enregistrer les modifications : Après avoir apporté les modifications, enregistrez le fichier et fermez l’éditeur.
- Redémarrer le système : Pour que les modifications prennent effet, il est nécessaire de redémarrer le système en utilisant la commande
sudo reboot
.
Configurer le niveau d’exécution via la ligne de commande
Il est également possible de changer temporairement le niveau d’exécution via la ligne de commande. Pour ce faire, la commande init
peut être utilisée.
- Vérifiez le niveau d’exécution actuel : Utilisez la commande
who -r
pour voir le niveau d’exécution actuel. - Changer de niveau d’exécution : Exécutez la commande
sudo init [niveau]
, en substituant “[niveau]” par 1, 3, 5, ou un autre niveau souhaité.
Notez que ce changement ne sera pas persistant ; il ne durera que jusqu’au prochain redémarrage.
Utilisation de l’outil systemctl
Pour les distributions modernes qui utilisent systemd, la commande systemctl
est l’outil recommandé pour gérer les niveaux d’exécution.
- Afficher la cible par défaut actuelle : Tapez
systemctl get-default
pour voir le niveau d’exécution par défaut actuel. - Changer la cible par défaut : Pour définir une nouvelle cible par défaut, utilisez
sudo systemctl set-default [nom_cible]
, en remplaçant “[nom_cible]” parmulti-user.target
ougraphical.target
.
FAQ
1. Quels sont les niveaux d’exécution disponibles sous Linux ?
Il existe plusieurs niveaux d’exécution, les plus courants étant 1 (mode mono-utilisateur), 3 (multi-utilisateur sans interface graphique), 5 (multi-utilisateur avec interface graphique) et 6 (redémarrage).
2. Quelles sont les différences entre SysVinit et systemd pour la gestion des niveaux d’exécution ?
SysVinit utilise des niveaux d’exécution définis dans le fichier /etc/inittab
, tandis que systemd utilise des cibles, définies dans /etc/systemd/system/default.target
, permettant une gestion plus flexible et moderne des services.
3. Comment revenir au niveau d’exécution précédent après une modification ?
Il suffit de répéter le processus en modifiant à nouveau le fichier de configuration ou en utilisant systemctl
pour restaurer la cible par défaut souhaitée.