Commande Linux init

Linux 命令大全Encyclopédie des commandes Linux


Qu'est-ce que la commande init

initC'est l'un des processus les plus importants du système Linux. C'est le premier processus au niveau utilisateur (PID=1) créé par le noyau après le démarrage du système, chargé de démarrer et de gérer tous les autres processus du système.

Caractéristiques clés

  • Gestion des processus: Sert de processus parent à tous les processus
  • Contrôle des niveaux d'exécution: Gère les différents états d'exécution du système
  • Gestion des services: Démarre et arrête les services système
  • Initialisation du système: Exécute les scripts de démarrage et la configuration

Syntaxe de base de la commande init

init [运行级别]

Explication des niveaux d'exécution

Le système Linux définit 7 niveaux d'exécution standard :

Niveau d'exécution Description Utilisation typique
0 Arrêt État d'arrêt du système
1 Mode mono-utilisateur Maintenance du système / privilèges root
2 Mode multi-utilisateur (sans NFS) Mode multi-utilisateur de base
3 Mode multi-utilisateur complet Interface en ligne de commande standard
4 Réservé Défini par l'utilisateur
5 Mode d'interface graphique Mode multi-utilisateur avec interface graphique
6 Redémarrage Redémarrage du système

Applications pratiques de la commande init

1. Afficher le niveau d'exécution actuel

Exemple

who -r
# ou
runlevel

2. Changer de niveau d'exécution

Exemple

init 3  # Passer en mode multi-utilisateur en ligne de commande
init 5  # Passer en mode interface graphique
init 0  # Éteindre
init 6  # Redémarrer le système

3. Gestion des urgences

Exemple

init 1  # Entrer en mode maintenance mono-utilisateur (nécessite les privilèges root)

L'évolution de init dans les systèmes Linux modernes

1. System V init

Système d'initialisation traditionnel, utilise le fichier de configuration /etc/inittab

Exemple

# Exemple d'une entrée inittab typique
id:3:initdefault:  # Niveau d'exécution par défaut
si::sysinit:/etc/rc.d/rc.sysinit  # Script d'initialisation du système

2. Upstart (utilisé dans les premières versions d'Ubuntu)

Système d'initialisation piloté par les événements

3. systemd (distributions modernes courantes)

Exemple

systemctl isolate multi-user.target  # Équivalent à init 3
systemctl isolate graphical.target  # Équivalent à init 5

Travaux pratiques

Exercice 1 : Expérience de changement de niveau d'exécution

Passer de l'interface graphique au mode ligne de commande

init 3

Observez les changements de service, puis revenez à l'interface graphique

init 5

Exercice 2 : Expérience du mode de maintenance du système

Entrer en mode mono-utilisateur

init 1

Effectuer une vérification du système de fichiers

fsck /dev/sda1

Notes

  1. Exigences de permissions: La commande init nécessite généralement les privilèges root
  2. À utiliser avec prudence: L'utilisation directe de init 0 ou init 6 peut entraîner la perte de données non enregistrées
  3. Différences entre systèmes: Différentes distributions peuvent avoir des implémentations d'init différentes
  4. Impact sur les services: Le changement de niveau d'exécution arrêtera/démarrera les services associés

FAQ

Q : Pourquoi mon système n'a-t-il pas de fichier /etc/inittab ?
R : Les systèmes utilisant systemd n'ont plus besoin d'inittab ; la méthode de configuration a changé

Q : Comment définir le niveau d'exécution par défaut ?
Pour les systèmes systemd :

systemctl set-default multi-user.target  # 相当于运行级别3

Q : Quelle est la différence entre les commandes init et shutdown ?
Les deux finissent par éteindre le système, mais shutdown offre davantage d'options (comme l'arrêt différé, les notifications diffusées, etc.)

Linux 命令大全Encyclopédie des commandes Linux

Autres extensions