Różnica między „zatrzymaniem” a „zamknięciem teraz”?

30

Zdalny system Ubuntu używa sudo -S -p '' haltdo zamykania systemu i nie działa do końca. pozostawiając monitor włączony z komunikatem

teraz się zatrzyma

[22225.11163] zatrzymany

Jaka jest różnica między sudo -S -p " halt i sudo shutdown now?

nkvnkv
źródło

Odpowiedzi:

41

W tym przypadku przełączniki -Si nie mają znaczenia. Oto, co robią odpowiednio.-psudo

-SPrzełącznik powoduje sudoaby odczytać hasło ze standardowego wejścia. Pozwala to, na przykład hasło być odprowadzone do sudopośrednictwem echolub cat.

-pPrzełącznik pozwala zastąpić domyślne hasło szybka i użyć jednego niestandardową, albo wcale.


Ważną różnicą są dwa polecenia wydawane przez sudo.

haltPolecenia, jeśli wywołana bez -pprzełącznika, po prostu zatrzymuje OS i zatrzymuje wszystkie procesory. Gdy system zostanie całkowicie zatrzymany, użytkownik może bezpiecznie ręcznie nacisnąć przycisk zasilania na swoim komputerze.

Te poweroff, shutdown -h noworaz halt -ppolecenia wszystkim zrobić to samo, co haltsam, podczas gdy dodatkowo wysyłając polecenie ACPI sygnalizować zasilacza, aby odłączyć zasilanie. Zapobiega to fizycznemu naciśnięciu przycisku zasilania na komputerze.

SirCharlo
źródło
9
shutdown -h nowniekoniecznie wyłącza również zasilanie. Jak na man shutdownto zależy od systemu. shutdown -H now(zauważ, że czapki są włączone H) to gwarancja, że ​​będzie to równowartośćhalt
MestreLion
11

haltnie jest shutdown, są to różne polecenia. Ten pierwszy nie wyłącza zasilania, chyba że -pzostanie użyta opcja

Z instrukcji ( man halt): „-p, --poweroff: instruuje polecenie halt, aby zamiast tego zachowywało się jak poweroff”.

I w twoim przypadku nie-p został użyty w poleceniu, dlatego komputer nie został wyłączony.halt

Nie pomyl tego -p z tym z sudo, ponieważ jest to inny parametr dla innej komendy. Od man sudo:

  • -S Opcja -S (stdin) powoduje, że sudo odczytuje hasło ze standardowego wejścia zamiast urządzenia końcowego. Hasło musi poprzedzać znak nowej linii.
  • -p prompt Opcja -p (monit) pozwala zastąpić domyślne hasło i użyć niestandardowego.

W twoim przypadku promptjest pusty (żaden komunikat nie wyświetla się dla sudo po zapytaniu o hasło), a -S sprawia, że ​​sudo akceptuje hasło roota vi stdin (więc hasło można podać za pomocą potoków i przekierowania z innych poleceń zamiast wpisywania)

MestreLion
źródło
7

Na stronie Unix SE znajduje się dobra odpowiedź na temat shutdownvs halt: Jaka jest różnica między poleceniami Halt i Shutdown?

Jeśli chodzi o tę sudo -S -p ''część, spowoduje to usunięcie komunikatu o pytaniu o hasło w terminalu (jednak nadal musisz podać swoje hasło)

Na przykład uruchomienie sudo <some_command>spowoduje wyświetlenie tego wyniku przed uruchomieniem tego polecenia:

[sudo] hasło dla:

Ale bieganie sudo -S -p '' <some_command>ukryje tę wiadomość.

W rzeczywistości wiadomość, którą wstawiłeś w cudzysłowie, zastępuje poprzednią wiadomość.

Śmiało, wypróbuj następujące rozwiązania i zobacz różnicę:

 sudo -S -p 'Hey, I am a custom message.' ls
Dan
źródło
0

Nie ma różnicy między poleceniem zatrzymania a zamknięciem pod względem intencji użytkownika. Różnica polega na tym, że w czasie zatrzymania trzeba wygodnie nacisnąć przycisk zasilania, aby zamknąć system, natomiast w poleceniu zamknięcia automatycznie poleci interfejsowi zasilania zaawansowanej konfiguracji (ACPI), aby wysłał sygnał do zasilacza w celu wyłączenia systemu.

Brandna Unaowo
źródło