Odpowiedzi:
To trochę historyczne.
halt
był używany przed ACPI (który dzisiaj wyłączy dla ciebie zasilanie) *. Zatrzymałoby to system, a następnie wydrukowałoby komunikat: „Można teraz wyłączyć zasilanie”. W tamtych czasach istniały fizyczne włączniki / wyłączniki, a nie kombinowany przycisk zasilania kontrolowany przez ACPI współczesnych komputerów.
poweroff
, naturalnie zatrzyma system, a następnie wyłączy zasilanie ACPI.
* Te dni halt
są wystarczająco inteligentne, aby automatycznie dzwonić, poweroff
jeśli ACPI jest włączony. W rzeczywistości są one teraz funkcjonalnie równoważne.
/sbin/poweroff
jest dowiązanie symboliczne /sbin/halt
.
shutdown
. Czy polecenie jest halt
takie samo jak shutdown -H
i polecenie jest poweroff
takie samo jak shutdown -P
? @phunehehe też.
halt
robił właśnie to. Bez uporządkowanego wyłączania, po prostu przestań robić to, co robiła maszyna. Często zdarzało sync;sync;sync;halt
się, że wszystkie bufory zostały zapisane na dysk.
To nie to samo, tylko bardzo blisko spokrewnione. W praktyce, chyba że chcesz określić konkretny czas zamknięcia lub wymusić natychmiastowe, nieczyste ponowne uruchomienie / zatrzymanie / wyłączenie zasilania, tak naprawdę nie ma znaczenia, czy biegniesz, shutdown -h
czy halt
... lub shutdown -r
kontra reboot
. W przeszłości rzeczy nie były tak wygodne, ale teraz tak to działa (wiele możliwości niejasności lub błędów użytkownika zostało usuniętych / wygładzonych).
/sbin/shutdown
wykonuje wiele czynności związanych z „czyszczeniem”, takich jak powiadamianie użytkowników, blokowanie nowych loginów podczas zamykania systemu. Można również nakazać zamknięcie systemu w określonym czasie lub za 20 minut - ostrzegając zalogowanych użytkowników od czasu do czasu o zbliżającym się wyłączeniu.
Zmienia również poziom działania na 0
( halt
/ poweroff
) lub 6
(reboot
), co powoduje, że system zatrzymuje działające usługi, odmontowuje dyski itp. W ramach przygotowań do faktycznego zatrzymania, wyłączenia zasilania lub ponownego uruchomienia.
Kiedy wszystko jest zrobione, to wtedy nazywa /sbin/halt
, /sbin/reboot
albo /sbin/poweroff
( reboot
i poweroff
to zazwyczaj do dowiązania symboliczne halt
, które je jak interpretuje halt -r
i halt -P
odpowiednio).
Należy jednak pamiętać, że jeśli halt
/ reboot
/ poweroff
nazywa, gdy system nie jest w poziomie działania 0
lub 6
będą następnie wywołać shutdown
wykonywać swoje zadania, chyba że -f
albo force
jest używana opcja.
(Szczegóły jego dotarcia poziomy są interpretowane może zmieniać się od dystrybucji do dystrybucji, ale 0
i 6
stosuje w sposób opisany tutaj w Debianie i dystrybucje pochodne jak Ubuntu).
Zobacz strony man dla shutdown
i halt
uzyskać więcej informacji.
Wreszcie, różnica między stanem halt
a poweroff
tym polega na tym, że halt
robi wszystko, aby faktycznie wyłączyć maszynę (na niektórych rodzajach sprzętu oznacza to, że wpada do bootloadera ROM lub podobnego. Na większości komputerów PC po prostu zatrzymuje się), jednocześnie poweroff
wykonując ostatni krok i wyłącza się. reboot
, oczywiście przechodzi do stanu zatrzymania, a następnie ponownie uruchamia komputer.
BTW, domyślnie jest to albo poweroff
albo reboot
, ale możesz użyć -H
jako argumentu, aby shutdown
zamiast tego zatrzymać. Nie jest to zbyt przydatne na komputerach z systemem Linux (ale jest przydatne na komputerach, takich jak sparc, które mają monitor rozruchowy oprogramowania układowego. Możliwe, że może się przydać na nowszych komputerach z linią poleceń EFI).
shutdown
polecenia mają pojęcie poziomów uruchamiania. shutdown
przeważnie nie wywołuje halt
/ reboot
/ poweroff
; jak na ironię, jest na kilku systemach innych niż Linux , gdzie ta otrzymana mądrość jest nadal aktualna. A gdzie wskazują dowiązania symboliczne, niekoniecznie halt
; nie tylko to, że w niektórych zestawach narzędzi wcale nie są symbolicznymi linkami. Więcej informacji na stronie unix.stackexchange.com/a/196471/5132 .