Et maintenant, la réponse systemd.
Selon l'étiquette de votre question, vous utilisez Red Hat Enterprise Linux. Depuis la version 7, cela a utilisé systemd. Aucune des autres réponses n'est correcte pour le monde de systemd; ni même certaines des hypothèses dans votre question.
- Oubliez les runlevels ; ils existent, mais uniquement en tant que compatibilité. La documentation de systemd indique que le concept est "obsolète". Si vous commencez à apprendre ce genre de choses sur un système d'exploitation systemd, ne commencez pas par là.
- Oubliez la page de manuel citée par marcelm; ce n'est pas du tout le bon jeu d'outils, c'est une description de la commande d'un autre jeu d'outils, incorrecte pour celle de systemd. C’est celui qui haltcommande les utilitaires "System 5" de Van Smoorenburginit.
- Ignorez les déclarations /sbin/haltconstituant un lien symbolique/sbin/reboot; ce n'est pas vrai avec systemd. Il n'y a pas derebootprogramme séparé du tout.
- Ignorez les instructions haltourebootappelez unshutdownprogramme avec des arguments de ligne de commande; ils ne sont également pas vrais avec systemd. Il n'y a pas deshutdownprogramme séparé du tout.
Chaque jeu d'outils de gestion de système a sa version de ces utilitaires. systemd, arriviste, Nosh , van Smoorenburg initet BSD initont tous leurs propres halt, poweroffet ainsi de suite. Sur chacun leurs mécanismes sont légèrement différents. Ainsi sont leurs pages de manuel.
Dans le jeu d' outils systemd halt, poweroff,reboot , telinitet shutdownsont tous les liens symboliques vers /bin/systemctl. Ils sont tous les cales de compatibilité ascendante, qui sont simplement des raccourcis pour appeler l' interface de ligne de commande principale de systemd: systemctl. Ils correspondent tous à (et sont en fait) ce même programme unique . (Par convention, le shell lui dit sous quel nom il a été appelé.)
des cibles, pas des niveaux d'exécution
La plupart de ces commandes sont des raccourcis permettant d'indiquer à systemd, using systemctl, d' isoler une cible particulière . L'isolement est expliqué dans la systemctlpage de manuel (qv), mais peut être considéré, aux fins de cette réponse, comme un point de départ et un arrêt des autres. Les cibles standard utilisées dans systemd sont répertoriées dans la systemd.specialpage de manuel (8).
Les diagrammes de la bootuppage de manuel (7) dans le jeu d'outils systemd, en particulier le dernier, montrent qu'il y a trois cibles "finales" qui sont pertinentes ici:
- halt.target- Une fois que le système a atteint l'état d'isolement complet de cette cible, il a appelé l'- reboot(RB_HALT_SYSTEM)appel système. Le noyau aura tenté d'entrer dans un programme de surveillance de la ROM ou simplement arrêté le processeur (en utilisant le mécanisme approprié).
- reboot.target- Une fois que le système a atteint l'état d'isolement complet de cette cible, il aura appelé l'- reboot(RB_AUTOBOOT)appel système (ou son équivalent avec la ligne de commande magique). Le noyau aura tenté de déclencher un redémarrage.
- poweroff.target- Une fois que le système a atteint l'état d'isolement complet de cette cible, il a appelé l'- reboot(RB_POWER_OFF)appel système. Le noyau aura tenté de couper l’alimentation du système, si possible.
Ce sont les choses auxquelles vous devriez penser en définissant le système final, et non les niveaux d'exécution. Avis du diagramme que le système cible systemd lui - même code choses qui sont, dans d' autres systèmes, plus implicites qu'explicites: tels que l'idée que chacun de ces objectifs finaux englobe la shutdown.targetcible, de sorte que l' on décrit les services qui doivent être arrêtés avant l' arrêt par les avoir en conflit avec la shutdown.targetcible.
systemctltente d'envoyer des demandes à systemd-logindlorsque l'appelant n'est pas le superutilisateur. Il transmet également les arrêts différés à systemd-shutdownd. Et certains raccourcis déclenchent des wallnotifications. Ces complexités mises à part, ce qui rallongerait cette réponse plusieurs fois, en supposant que vous êtes actuellement le super-utilisateur et que vous ne demandez pas une action planifiée:
- systemctl isolate halt.targeta les raccourcis:- 
- shutdown -H now
- systemctl halt
- sans fioritures halt
 
- systemctl isolate reboot.targeta les raccourcis:- 
- shutdown -r now
- telinit 6
- systemctl reboot
- sans fioritures reboot
 
- systemctl isolate poweroff.targeta les raccourcis:- 
- shutdown -P now
- telinit 0
- shutdown now
- systemctl poweroff
- sans fioritures poweroff
 
- systemctl isolate rescue.targeta les raccourcis:- 
- telinit 1
- systemctl rescue
 
- systemctl isolate multi-user.targeta les raccourcis:- 
- telinit 2
- telinit 3
- telinit 4
 
- systemctl isolate graphical.targeta le raccourci:
Après avoir analysé les différentes syntaxes de ligne de commande, celles-ci finissent par se retrouver dans les mêmes chemins de code dans le systemctlprogramme.
Remarques:
- Le comportement traditionnel de l'option-less shutdown nowa été de passer en mode mono-utilisateur . Ce n'est pas le cas avec systemd.rescue.target- le mode mono-utilisateur étant renommé le mode de secours dans systemd - n'est pas accessible avec lashutdowncommande.
- telinitignore réellement tous ces liens et liens symboliques dans le système de fichiers décrit par les pages de manuel. Les mappages susmentionnés sont intégrés au programme, dans un tableau.- runlevelN.target- default.target- systemctl
- systemd n'a aucune notion d'un niveau d'exécution actuel . Le fonctionnement de ces commandes ne dépend d'aucun "si vous êtes au niveau d'exécution N ".
- L' --forceoption de lahalt,rebootet despoweroffcommandes est la même chose que dire--force --forceauxsystemctl halt,systemctl rebootet lessystemctl poweroffcommandes. Cela faitsystemctlessayer d'appelerreboot()directement. Normalement, il essaie simplement d'isoler les cibles.
- telinitn'est pas la même chose que- init. Ce sont différents programmes dans le monde systemd, ce dernier étant un autre nom pour le- systemdprogramme, pas pour le- systemctlprogramme. Le- systemdprogramme n’est pas nécessairement compilé avec la moindre compatibilité avec van Smoorenburg et, sur certains systèmes d’exploitation système, il se plaint d’être invoqué incorrectement, le cas échéant .- init N
Lectures complémentaires