L'arrêt est-il identique à «shutdown -H» et la mise hors tension est-elle identique à «shutdown -P»?

15

Je n'ai pas trouvé de réponse claire aux différences entre les deux options de la commande shutdown .

Est-ce haltla même chose que shutdown -Het poweroffla même chose que shutdown -P?

StackExchange pour tous
la source

Réponses:

26

C'est un peu historique.

halta été utilisé avant ACPI (qui vous coupera le courant aujourd'hui) *. Cela arrêterait le système, puis afficherait un message indiquant "c'est ok pour éteindre maintenant". À l'époque, il y avait des interrupteurs physiques marche / arrêt, plutôt que le bouton d'alimentation contrôlé par ACPI combiné des ordinateurs modernes.

poweroff, arrêtera naturellement le système, puis mettra hors tension ACPI.

* Ces jours-ci haltsont suffisamment intelligents pour appeler automatiquement poweroffsi ACPI est activé. En fait, ils sont fonctionnellement équivalents maintenant.

bahamat
la source
Intéressant: sur mon ordinateur portable qui exécute Gentoo, /sbin/poweroffest un lien symbolique vers /sbin/halt.
phunehehe
Merci, bahamat! Je parle de deux options à la commande shutdown. La commande est halt-elle identique à shutdown -H, et la commande est poweroff-elle identique à shutdown -P? @phunehehe aussi.
StackExchange for All
@phunehehe: Ouais, j'étais presque sûr qu'ils sont les mêmes maintenant, mais je n'ai pas pris la peine de regarder.
bahamat
@Tim: Oui, ces drapeaux sont identiques à l'appel de la commande. Comme je l'ai dit, c'est à peu près une différence historique.
bahamat
1
Retour dans la journée, l' halthabitude de faire exactement cela. Pas d'arrêt ordonné, arrêtez simplement ce que la machine faisait à ce moment-là. Il était courant d'émettre sync;sync;sync;haltpour s'assurer que tous les tampons avaient été écrits sur le disque.
kurtm
15

Ce n'est pas la même chose, juste très étroitement liés. En pratique, à moins que vous ne vouliez spécifier un moment particulier pour l'arrêt ou pour forcer un redémarrage / arrêt / arrêt immédiat impur, peu importe que vous exécutiez shutdown -hou halt... ou shutdown -rvsreboot . Les choses n'étaient pas si bien commodes dans le passé, mais c'est ainsi que cela fonctionne maintenant (de nombreuses possibilités d'ambiguïté ou d'erreur utilisateur ont été supprimées / lissées).

/sbin/shutdownfait beaucoup de "nettoyage" comme avertir les utilisateurs, bloquer les nouvelles connexions pendant que le système s'arrête. On peut également lui dire d'arrêter le système à un certain moment ou dans XX minutes - avertissant de temps en temps les utilisateurs connectés de l'arrêt imminent.

Il change également le niveau d'exécution en 0( halt/ poweroff) ou 6( reboot), ce qui déclenche l'arrêt des services en cours, le démontage des disques, etc. en préparation de l'arrêt, de la mise hors tension ou du redémarrage.

Quand tout cela est fait, il appelle ensuite /sbin/halt , /sbin/rebootou /sbin/poweroff( rebootet poweroffdes liens symboliques habituellement halt, qui les interprète comme halt -ret halt -Prespectivement).

Notez cependant que si halt / reboot/ poweroffest appelé lorsque le système n'est PAS au niveau d'exécution 0ou 6alors ils appellent shutdownpour faire son travail à moins que l' option -fou ne forcesoit utilisée.

(Les détails de la façon dont sont interprétés les niveaux d' exécution peuvent varier d' une distro à distro, mais 0et 6sont utilisés comme décrit ici dans les dérivés Debian Debian et Ubuntu comme).

Consultez les pages de manuel pour shutdownet haltpour plus d'informations.

Enfin, la distinction entre halt et poweroffétat est que halttout fait pour éteindre la machine (sur certains types de matériel, cela signifie qu'il tombe dans un chargeur de démarrage ROM ou similaire. Sur la plupart des matériels PC, il s'arrête simplement), tout en poweroffterminant cette dernière étape et Éteindre. reboot, bien sûr, arrive à l'état d'arrêt puis redémarre l'ordinateur.

BTW, la valeur par défaut est généralement soit poweroffou reboot, mais vous pouvez utiliser -Hcomme argument pour l' shutdownarrêter à la place. Ce n'est pas très utile sur les boîtiers linux basés sur PC (mais c'est utile sur les machines, comme les boîtiers sparc, qui ont un moniteur de démarrage du firmware. Il est possible que cela devienne utile sur les machines plus récentes avec une ligne de commande EFI).

cas
la source
1
Il s'agit d'une réponse fortement centrée sur Linux à une question non spécifique au système d'exploitation. Toutes les shutdowncommandes n'ont pas la notion de niveaux d'exécution. shutdownla plupart du temps ne pas invoquer halt/ reboot/ poweroff; ironiquement, c'est sur quelques systèmes non Linux que cette sagesse reçue reste vraie aujourd'hui. Et où le point des liens symboliques n'est pas nécessairement halt; non seulement cela, dans certains ensembles d'outils, ils ne sont pas du tout des liens symboliques . Voir unix.stackexchange.com/a/196471/5132 pour plus de détails.
JdeBP