„Zamknij teraz” czy „zamknij teraz”, aby wyłączyć Raspberry Pi?

12

Jestem nowy w Linuksie (używam Raspbian) i Raspberry Pi i zastanawiam się, które z dwóch poleceń wymienionych w tytule powinienem użyć podczas wyłączania mojego Pi. Poszukałem ich, ale nadal nie widzę różnicy między nimi, czy to ma znaczenie, którego używam?

Po prostu jakiś facet
źródło

Odpowiedzi:

13

Spróbuj pisać man shutdown. Strony podręcznika zawierają pełną listę opcji, które może wybrać polecenie, oraz wyjaśnienie, co robią. W przypadku -h:

-h Żąda, aby system został zatrzymany lub wyłączony po jego wyłączeniu, z wyborem, który pozostawić systemowi.

Różnica między włączeniem -hopcji lub jej brakiem jest niewielka i nie ma w tym przypadku znaczenia, ponieważ i tak nie można wyłączyć Pi bez ręcznego odłączenia zasilania USB.

Greenonline
źródło
5

Dokumentacja jest w man shutdown. 1

-P, --poweroff
           Power-off the machine (the default).

[...]

-h
           Equivalent to --poweroff, unless --halt is specified.

Czasami polecenia mają nadmiarowe pozorne przełączniki, ponieważ muszą spełniać specyfikacje dla kilku różnych kontekstów. Prosta logika mówi nam, że skoro i tak poweroffjest ustawieniem domyślnym, użycie -hjest samo w sobie redundantne (znowu istnieje, aby spełnić specyfikację zewnętrzną; niektóre implementacje shutdownmogą nie działać domyślnie w ten sposób, ale wszystkie te, które są zgodne, będą implementować -h).

Ponieważ samo pi nie może się wyłączyć (jest albo podłączone == włączone, albo nie), nie ma sensu używać poweroff, ale nie spowoduje to żadnej szkody. Może to mieć znaczenie WRT w sposób, w jaki czerwona dioda LED miga na końcu (możesz porównać z tym, shutdown -Haby zobaczyć). Uwaga: głównym celem shutdownjest zatrzymanie (zatrzymanie) działania systemu operacyjnego.

Możesz więc użyć dowolnego formularza.


1. Ten jest w rzeczywistości z Raspbian jessie i pochodzi z systemd; różni się nieco od zamknięcia w Raspbian wheezy (odpowiedź Greenonline cytuje to), co jest przykładem tego, o czym wspomniałem w następnym akapicie o różnych implementacjach spełniających tę samą specyfikację. Proces zamykania jest właściwie częścią systemu init , którym jest SysV na wheezy i systemd na jessie.

Złotowłosa
źródło
1

wolę

sudo halt

Nie pamiętam, dlaczego to wybrałem, ale z jakiegokolwiek powodu inne polecenia powodują problemy. To działa idealnie. Uruchomić ponownie:

sudo restart
otah007
źródło
2
Jeśli wykonasz tylko halt, może to spowodować utratę danych. Znacznie lepszą praktyką byłoby sudo sync;sync;halt, ponieważ synchronizuje to przechowywanie danych (tj. Dyski twarde, kartę SD) z wszelkimi niepisanymi buforowanymi danymi nadal w pamięci, przed zatrzymaniem systemu.
Greenonline
2
@Greenonline, jeśli wykonasz halt od poziomu 0 lub 6 , może to spowodować utratę danych. Na każdym innym poziomie pracy jest to równoważne z shutdown -h now.
Mark
1
Dlaczego użytkownicy ignorują istnienie polecenia „init” w systemach operacyjnych typu unix? init 0zamknąć, init 6zrestartować
rkosegi
@Greenonline, @Mark, Od teraz będę używać shutdown -h now, nie zdawałem sobie sprawy, że haltjest niebezpieczny!
otah007,