Antworten:
Die Schalter -S
und -p
für sudo
haben in diesem Fall keine Bedeutung. Hier ist, was sie jeweils tun.
Der
-S
Schalter bewirktsudo
, dass das Passwort von STDIN gelesen wird. So kann beispielsweise ein Passwortsudo
überecho
oder weitergeleitet werdencat
.Mit dem
-p
Schalter können Sie die Standardkennwortabfrage überschreiben und ein benutzerdefiniertes oder keines verwenden.
Der wichtige Unterschied besteht in den beiden Befehlen, die von ausgegeben werden sudo
.
Der
halt
Befehl, wenn ohne die aufgerufen-p
Schalter, hält einfach das Betriebssystem und stoppt alle CPUs. Sobald das System sauber gestoppt ist, kann der Benutzer die Einschalttaste an seinem Computer sicher manuell drücken.Die
poweroff
,shutdown -h now
undhalt -p
Befehle alle die gleichen wie tunhalt
allein, während zusätzlich einen ACPI - Befehl sendet die Stromversorgungseinheit zu signalisieren , die Hauptstromversorgung zu trennen. Dies verhindert, dass Sie den Ein- / Ausschalter Ihres Computers drücken müssen.
halt
ist nicht shutdown
, sie sind verschiedene Befehle. Ersteres schaltet den Strom nicht aus, es sei denn, die -p
Option wird verwendet
Aus dem manual ( man halt
): "-p, --poweroff: Weist den halt-Befehl an, sich stattdessen als poweroff zu verhalten."
Und in Ihrem Fall -p
wurde der Befehl nicht verwendet halt
, sodass Ihr Computer nicht ausgeschaltet war.
Verwechseln Sie dieses -p nicht mit dem von sudo
, es ist ein anderer Parameter für einen anderen Befehl. Von man sudo
:
-S
Die Option -S (stdin) bewirkt, dass sudo anstelle des Endgeräts das Kennwort von der Standardeingabe liest. Dem Passwort muss ein Zeilenumbruch folgen.-p prompt
Mit der Option -p (Eingabeaufforderung) können Sie die Standardkennwort-Eingabeaufforderung überschreiben und eine benutzerdefinierte verwenden.In Ihrem Fall prompt
ist es leer (Sudo erhält keine Meldung, wenn Sie nach dem Passwort gefragt werden), und -S veranlasst Sudo, das root-Passwort vi stdin zu akzeptieren (das Passwort kann also mithilfe von Pipes und Umleitungen von anderen Befehlen eingegeben werden, anstatt eingegeben zu werden).
Auf der Unix SE-Site gibt es eine gute Antwort zum shutdown
vs- halt
Problem: Was ist der Unterschied zwischen Halt- und Shutdown-Befehlen?
Was den sudo -S -p ''
Teil betrifft, so wird die Meldung über die Abfrage des Passworts im Terminal entfernt (Sie haben Ihr Passwort jedoch noch eingegeben).
Beispielsweise gibt running sudo <some_command>
diese Ausgabe aus, bevor dieser Befehl ausgeführt wird:
[sudo] Passwort für:
Durch das Ausführen sudo -S -p '' <some_command>
wird diese Meldung ausgeblendet.
Tatsächlich ersetzt die Nachricht, die Sie in die Anführungszeichen setzen, die vorherige Nachricht.
Probieren Sie Folgendes aus und sehen Sie den Unterschied:
sudo -S -p 'Hey, I am a custom message.' ls
In Bezug auf die Benutzerabsicht gibt es keinen Unterschied zwischen dem Befehl zum Anhalten und dem Herunterfahren. Der kleine Unterschied besteht darin, dass Sie im Stopp-Modus den Netzschalter bequem drücken müssen, um das System herunterzufahren, während der Befehl zum Herunterfahren automatisch das Advanced Configuration Power Interface (ACPI) anweist, ein Signal an das Netzteil zu senden, um das System auszuschalten.
shutdown -h now
schaltet auch nicht unbedingt den Strom aus. Dasman shutdown
hängt vom System ab.shutdown -H now
(H
halt