Sunday, October 2, 2016

CentOS - 11 : les niveaux de fonctionnement (cibles)

Après avoir rencontré le concept de "niveaux de fonctionnement" au cours de mes recherches pour le billet précédent, je voudrais reprendre cette notion ici et l'étudier plus en détail.

En anglais, on dit  "run level", ce qui donne, dans la traduction française, soit "niveau de fonctionnement", soit "niveau d'exécution". J'ai vu aussi "niveau fonctionnel".

Il s'agit de modes d'opération dans lesquels plus ou moins de fonctions sont disponibles.

Le niveau de fonctionnement 1 se caractérise par des fonctions limitées : seul un utilisateur (root) peut ouvrir une session, d'où une autre désignation pour ce mode, le mode "mono-utilisateur".

Le niveau de fonctionnement 3 se caractérise par une interface en ligne de commande et une connectivité réseau activée.

Voici une liste de tous les niveaux avec plus de détails :

Niveau 0
Remarque - le serveur passe en ce mode lors de l'arrêt.

Niveau 1
Mode - mono-utilisateur (single user mode)
Remarques :
  • Seul "root" peut ouvrir une session.
  • Seul un nombre limité de services démarrent
  • Les interfaces réseau ne s'activent pas.

Niveau 2
Mode - multi-utilisateur mais sans accès au réseau.

Niveau 3
Mode - multi-utilisateur avec accès au réseau
Remarque - c'est le niveau par défaut pour CentOS (et RHEL).

Niveau 4
Remarque - non défini (il ne s'utilise pas).

Niveau 5
Mode - multi-utilisateur avec accès au réseau.
Remarque - C'est le niveau 3 plus une interface graphique.

Niveau 6
Remarque :  c'est pour le redémarrage


Selon le niveau, le système  accepte seulement une ouverture de session avec le compte "root", soit le mode "mono-utilisateur", ou avec n'importe lequel des comptes existants, soit le mode "multi-utilisateur".

Les niveaux de fonctionnement 1 à 5 ne se succèdent pas les uns après les autres. Si le système démarre au niveau 1, il reste au niveau 1 jusqu'à ce que le système  s'arrête ou redémarre, ce qui correspond aux niveaux 0 et 6 respectivement. Si nous voulons faire démarrer au niveau 5, il ne s'agit pas d'attendre que le système passe d'un niveau à un autre, jusqu'à 5. Ce n'est pas ainsi que cela se passe !

Par défaut, CentOS démarre au niveau 3. Si on installe une interface graphique (Gnome, KDE, Xfce, etc.), il peut démarrer au niveau 5.

Si nous voulons faire démarrer à un autre niveau, nous devons modifier certaines lignes dans des fichiers associés avec GRUB ou même installer une interface graphique. Nous avons vu un exemple du premier cas dans le billet précédent où nous avons appuyé sur la touche "e" au moment où GRUB affiche les versions de Linux disponibles, et puis ajouté des paramètres comme "systemd.unit=rescue.target".

Il faut préciser deux choses :
  1. Les niveaux de fonctionnement ne sont pas identiques chez toutes les distributions Linux. La plupart des distributions se conforment à la norme "Linux Standard Base" (un ensemble de normes, en fait), ce qui n'est pas le cas de Slackware, par exemple. Les niveaux diffèrent aussi entre des versions d'Unix comme AIX (IBM), HP-UX (HP) et Solaris (Oracle).
  2. Un "niveau de fonctionnement" (ou d'exécution, selon les traductions) est un concept qui relève du "System V" (cinq), une des premières formes d'Unix et qui subsiste encore chez AIX, HP-UX et Solaris. Dans le monde de Linux, "systemd" commence à évincer "System V". Il s'agit d'un système d'initialisation (init) qui monte l'espace utilisateur (user space) et gère les processus qui ont lieu ensuite. systemd remplace le concept de "run level" par celui de "target" (cible en français). Nous avons vu que le paramètre "systemd.unit=rescue.target" lance le système en mode de secours et utilise le terme "target" plutôt que "run level". Cela dit, la commande "runlevel" fonctionne toujours.

Autrefois, après que GRUB a chargé le noyau (core) lors du démarrage, le programme /sbin/init lisait le fichier /etc/inittab pour connaître le comportement à adopter pour chaque niveau de fonctionnement, et le niveau 3 en particulier (le niveau par défaut).

Ces éléments se trouvent donc aux emplacements suivants :

/sbin/



/etc/




Mais si nous ouvrons le fichier inttab, nous voyons la notice qui nous rappelle que systemd s'occupe désormais de l'initialisation :



No comments:

Post a Comment