Quelle est la différence entre les commandes halt
et shutdown
?
la source
Quelle est la différence entre les commandes halt
et shutdown
?
Généralement, on utilise la shutdown
commande . Il permet un délai et un message d'avertissement avant l'arrêt ou le redémarrage, ce qui est important pour l'administration système des serveurs shell multi-utilisateurs. il peut donner aux utilisateurs un préavis du temps d'arrêt.
En tant que tel, la commande shutdown doit être utilisée comme ceci pour arrêter / éteindre immédiatement l’ordinateur (au moins sous Linux et FreeBSD):
shutdown -h now
Ou pour le redémarrer avec un avertissement personnalisé de 30 minutes à l'avance:
shutdown -r +30 "Planned software upgrades"
Après le délai, shutdown
indique init
de passer au niveau d'exécution 0 (arrêt) ou 6 (redémarrage). (Notez que le fait d'omettre -h
ou de -r
faire passer le système en mode mono-utilisateur (niveau d'exécution 1), ce qui tue la plupart des processus système mais n'interrompt pas réellement le système; il permet néanmoins à l'administrateur de rester connecté en tant qu'utilisateur root.)
Une fois que les processus système ont été arrêtés et les systèmes de fichiers démontés, le système s'arrête / s'éteint ou redémarre automatiquement. Cette opération est effectuée à l'aide de la commande halt
oureboot
, qui synchronise les modifications apportées aux disques, puis effectue l'arrêt ou le redémarrage proprement dit.
Sous Linux, si halt
ou reboot
est exécuté alors que le système n'a pas encore démarré le processus d'arrêt, il invoquera la shutdown
commande automatiquement plutôt que d'exécuter directement l'action souhaitée. Cependant, sur des systèmes tels que FreeBSD , ces commandes enregistrent d’abord l’action wtmp
, puis effectuent immédiatement l’arrêt / le redémarrage, sans tuer au préalable les processus ni démonter les systèmes de fichiers.
halt
,reboot
et desshutdown
programmes qui font appel à un autre. Il existe un seul programme, avec de nombreux analyseurs en ligne de commande qui aboutissent en interne à un chemin de code. Il n'y a pas non plus de niveaux d'exécution. L'arrêt ne passe pas non plus en mode utilisateur unique. En effet, le mode mono-utilisateur lui-même a été renommé. Pour plus de détails, voir unix.stackexchange.com/a/196014/5132 .Le passé
Dans les années 1980, les BSDs avaient
halt
,reboot
etshutdown
. System 5 UNIX avait un jeu d’outils de compatibilité BSD. Mais nativement, il avait son propreshutdown
commandement , différent ; et n'a pas euhalt
oureboot
du tout. (Certaines variantes du système 5 comportaient des fonctionnalités similaires à celles de SCO XENIXhaltsys
.)Le BSD
halt
et lesreboot
commandes étaient bas, drastiques et immédiats. La considération façon de fermer un système BSD était lashutdown
commande, ce qui a fait toutes les choses que l' on attend de se produire: deswall
messages aux utilisateurs, services gracieusement tués, les entrées de journal écrites, les connexions désactivées, et ainsi de suite.Alors que les BSD étaient en grande partie à l’origine des idées reçues, les "
shutdown
execshalt
/reboot
" et que ces derniers devaient être utilisés avec précaution; c’était le monde System 5 où les gens avaient appris l’habitude contraire qui étaithalt
/reboot
c’était juste des raccourcis pratiques et rien de plus/usr/ucb/halt
:, du "paquet de compatibilité BSD", n’était pas différent en effetshutdown -h
. Ils ont tous deux fini par faireinit 0
.Lectures complémentaires
halt
. 1982-05-11. Manuel 4.2BSD.haltsys
. 2005-06-03. Manuel SCO OpenServer.Aujourd'hui
De nos jours, nous avons toute une gamme d’outils de gestion de système possibles. Les BSD ont toujours leurs outils, bien que débarrassés de tout AT & Tism dans les années 90. Miquel van Smoorenburg a écrit (en 1992) un Linux
init
+rc
et ses outils associés, que les gens appellent maintenant "System 5 init", même s’il ne s’agit pas du logiciel UNIX System 5 (etinit
). Il y a aussi systemd , arriviste et Nosh , dont chacun ont leurs propres implémentations dehalt
,reboot
,fasthalt
,fastboot
, et ainsi de suite.Les outils ont également grandi et changé. Il existe maintenant une
poweroff
commande, absente des systèmes d'exploitation des années 1980, car les unités centrales de traitement de la plupart des machines contemporaines n'avaient aucun moyen de contrôler leur alimentation. Les outils Linux, en particulier, ont acquis les commandes BSD; Toutefois, à l'instar des outils de compatibilité BSD sous UNIX System 5, ils ne sont pas des solutions à la tâche et les choses ont été largement aplaties.Cet aplatissement nous a amenés au point où
halt
etshutdown
sont pour l' essentiel les mêmes. Mais les détails exacts varient d'un jeu d'outils à l'autre, et les mécanismes de chaque jeu d'outils sont légèrement différents.Il nous a aussi apporté à la position légèrement embarrassante où cet ensemble de commande est devenu si festonné avec des options de compatibilité qu'il permet maintenant aux gens de donner des ordinateurs auto-contradictoires instructions comme
reboot --halt
etpoweroff --reboot
, comme je l' ai indiqué dans la page de manuel pour le Noshhalt
,fasthalt
,reboot
,fastboot
, etpoweroff
commandes. ☺Le jeu d'outils systemd
halt
,reboot
,poweroff
,telinit
Etshutdown
sont tout un programme . C'est en fait lesystemctl
programme de systemd . Il dispose de plusieurs analyseurs de ligne de commande pour les diverses syntaxes de ligne de commande de ces commandes, ainsi que de la sienne, mais après cela, il est en grande partie converti en un chemin de code en interne. Il n'y a pas de différence entre utiliserhalt
et ses options de commande pour déclencher une action et utilisershutdown
et ses options de commande pour déclencher la même action.systemd ne considère pas le mode de secours (qui correspond à ce que les utilisateurs de Systemd ont renommé le mode utilisateur unique ) comme un état système arrêté, et il n'est pas accessible avec ces commandes. Option-less
shutdown now
est la même chose quepoweroff
.Lectures complémentaires:
Les BSD
Les BSD conservent en grande partie leur sémantique des années 1980.
halt
et neshutdown
sont donc pas équivalents dans leurs outils.halt
etreboot
sont un seul programme; et sont toujours faibles, immédiats et drastiques. Attendu que,shutdown
etpoweroff
également un seul programme, fait tout ce qui est prévenant, comme l’arrêt planifié, la rédaction dewall
messages, les actions de journalisation, la désactivation de la connexion, etc.Dans les jeux d’outils BSD,
shutdown
/poweroff
finissait traditionnellement par invoquerhalt
/reboot
pour appliquer le changement final de l’état du système. (Souvent de nos jours incorrect) ont reçu la sagesse que «shutdown
execshalt
/reboot
» en fait tient toujours sur NetBSD et OpenBSD. Mais sous FreeBSD / TrueOS / DragonFlyBSD, ce n’est le cas que si l’-o
option est utilisée. Sur ces BSDs, deux de ces programmes normalement édictant la dernière modification de l' état du système en envoyant des signaux (INT
,USR1
etUSR2
) pour traiter # 1.init
fait toute la gestion de l'état du système sur ces systèmes.Sur chacun d'eux, option moins
shutdown now
ne correspond pas à l' un deshalt
,reboot
oupoweroff
. Il passe en mode utilisateur unique BSD , à partir duquel il est possible de repasser en mode multi-utilisateur .Lectures complémentaires:
shutdown
. Manuel du gestionnaire de système . Pages de manuel NetBSD. 2011-11-04.reboot
,halt
. Pages de manuel OpenBSD. 2016-09-03.shutdown
. Pages de manuel FreeBSD. 2016-09-21.reboot
,halt
,fastboot
,fasthalt
. Pages de manuel FreeBSD. 2017-03-19.shutdown
. Manuel du gestionnaire de système . Pages de manuel de DragonFlyBSD. 2016-09-29.reboot
,halt
,fastboot
,fasthalt
. Manuel du gestionnaire de système . Pages de manuel de DragonFlyBSD. 2016-09-29.Le jeu d'outils
Dans le jeu d' outils de gestion du système Nosh,
halt
,fasthalt
,poweroff
,fastpoweroff
,reboot
, etfastboot
sont tous un programme. Il est une cale de rétrocompatibilité que normalement simplement des chaînes àshutdown
l' opposé de la sagesse reçue. L'--force
option rend la chaîne à lasystem-control
place.Il n'y a donc aucune différence (absente
--force
) entre lahalt
commande et lashutdown
commande (avec l'option équivalente) dans cet ensemble d'outils, car cet ensemble de commandes "Compatibilité BSD / Système 5" est simplement une couche mince de calage au-dessus deshutdown
.Lectures complémentaires:
shutdown
. nosh les pages de manuel du jeu d’outils. Logicielstelinit, init, reboot, halt, haltsys, powercycle, poweroff, … fastboot, fasthalt, fastpowercycle, fastpoweroff, …
nosh les pages de manuel du jeu d'outils. LogicielsLe jeu d'outils parvenu
Comme avec nosh, dans les outils de gestion de système de pointe, l'inverse de la réception reçue par BSD s'applique.
halt
,reboot
etpoweroff
sont tous un programme, qui est normalement lié àshutdown
; sauf si l'--force
option est utilisée, cela oblige lereboot()
système à s'appeler lui-même.Donc, encore une fois, il n'y a pas de différence (absente
--force
) entre lahalt
commande et et lashutdown
commande (avec l'option équivalente) dans cet ensemble d'outils. De plus encore, moins-optionsshutdown now
(dont aucun dehalt
,reboot
oupoweroff
peut finir invoquer comme ils l' ensemble des options) apporte le système en mode mono - utilisateur plutôt que de l' arrêter.Lectures complémentaires:
shutdown
(8) . Pages de manuel Ubuntu.reboot
(8),halt
(8),poweroff
(8) . Pages de manuel Ubuntu.L' ensemble d'outils Linux System 5
init
+rc
Encore une fois, dans ce jeu d' outils à l'opposé de la sagesse BSD reçue applique et
halt
etreboot
simplement la chaîne àshutdown
- à moins que le système est déjà dans le poweroff ou l' arrêt « runlevel », auquel cas ces commandes promulguent en fait le dernier changement d'état du système.shutdown
à son tour des chaînes pourinit
.Donc, encore une fois, il n'y a pas de différence (à moins que le système soit déjà en grande partie fermé) entre
halt
etshutdown
parce que le premier n'invoque que le dernier. Et oui, encore une fois, moins-optionsshutdown now
(dont aucun dehalt
,reboot
oupoweroff
peut finir par invoquer comme ils l' ensemble des options) apporte le système en mode mono - utilisateur plutôt que de le fermer.la source
Je suppose que cela dépend un peu de la version d’UNIX / Linux que vous utilisez. Sur Centos (et sur d’autres systèmes d’exploitation modernes sous Linux), arrêtez l’arrêt des appels (si vous n’êtes pas au niveau d’exécution 0 ou 6) pour que votre système s’arrête proprement. Sous Solaris 10, l’arrêt est plus brutal. Il vide simplement les caches de disque et met le système hors tension. Aucune tentative d’exécution de scripts ni d’arrêt des installations smf n’est tentée .
la source
Pour ceux qui utilisent AWS EC2: sur AWS
shutdown
, une instance esthalt
arrêtée quand elle se termine .la source
Sous Linux, "stop" et "reboot" sont des alias de la commande shutdown -
shutdown -h
etshutdown -r
respectivement. L’arrêt des mots clés suppose généralement -h.la source
aliases
au sens des alias de shell, mais oui, enhalt
gros , ils appellentshutdown -h
etreboot
courentshutdown -r
. Notez que si vous passez l'-f
option (force) àhalt
oureboot
, ilshutdown
n'est pas appelé.sendmail
commande à ce stade - Comme avec les MTA, le système d'initialisation que vous utilisez n'a pas d'importance, car ils reconnaîtront tous les deuxshutdown
et enhalt
tant que tels.sendmail
commande. C'est comme lasendmail
commande, mais pas comme vous le pensez.