Commande Linux init
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
# ou
runlevel
2. Changer de niveau d'exécution
Exemple
init 5 # Passer en mode interface graphique
init 0 # Éteindre
init 6 # Redémarrer le système
3. Gestion des urgences
Exemple
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
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 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
- Exigences de permissions: La commande init nécessite généralement les privilèges root
- À utiliser avec prudence: L'utilisation directe de init 0 ou init 6 peut entraîner la perte de données non enregistrées
- Différences entre systèmes: Différentes distributions peuvent avoir des implémentations d'init différentes
- 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.)