Gibt es eine schnellste Möglichkeit, das System herunterzufahren?

20

Oder ist shutdown -h nowder schnellste, den es bekommen kann?

Ich suche nach einem Syscall oder ähnlichem, mit dem ich viele Dinge überspringen kann, die vor dem Herunterfahren erledigt wurden (insbesondere, um die laufenden Prozesse zu berücksichtigen).

Am liebsten hätte ich eine initkernelbezogene Lösung, da ich keine Ahnung von der -middleware (wie systemdoder upstart) habe.

Die Risiken bezogen sich zB auf das direkte Beenden aller Dienste wie Cups / Apache / Pulseaudio etc ... Es wäre mir egal ....

bemerkung: die lösung sollte software-vice sein. Das Drücken von Tasten am Gerät ist nicht das, wonach ich suche.

Mensch und Frieden
quelle
8
"Die Risiken, die mit dem direkten Töten von Diensten wie Cups / Apache / Pulseaudio usw. verbunden sind, sind mir egal ..." -> Sind Sie sicher? Wenn Sie komplexe Software in einem inkonsistenten Zustand belassen, kann dies bei der nächsten Verwendung zu bösen Überraschungen führen. Vielleicht sollten Sie in Betracht ziehen, Dienste zu deaktivieren, die Sie nicht häufig nutzen (z. B. Tassen, Apache). Sie können diese Dinge jederzeit manuell starten und stoppen, wenn Sie sie verwenden möchten.
Goldlöckchen
Die Methode, die ich suche, ist für den Moment, in dem ich verhindern möchte, dass Leute Zugang zu meinem PC haben. Jede Verzögerung beim Herunterfahren kann zu Missständen führen. Ich verliere eher Daten und lege sie dann offen.
HumanityANDpeace
2
Besuchen Sie auch diese
Pandya
8
Es gibt eine Idee. Sparen Sie Geld für neue Hardware.
John WH Smith
sudo shutdown -P 0 Ich benutze das und es startet sofort den Shutdown-Prozess, egal welche Apps geöffnet sind
gkmohit

Antworten:

30

Es geht nicht viel schneller, als die System Request (SysRq) -Funktionalität zu verwenden und dann eine sofortige auszulösen reboot.

Dies ist eine Tastenkombination, die vom Kernel verstanden wird.

Aktivieren Sie SysRq:

echo 1 > /proc/sys/kernel/sysrq

Senden Sie es jetzt in den Neustart.

echo b > /proc/sysrq-trigger

b - Starten Sie das System sofort neu, ohne die Bereitstellung aufzuheben oder die Dateisysteme zu synchronisieren.

Hinweis:

Obwohl dies ein rebootProblem ist, verhält es sich so, als ob der Strom abgeschaltet wurde, was nicht empfohlen wird.

Wenn Sie wollen syncund umountdie Dateisysteme vor der Hand, dann verwenden Sie:

echo s > /proc/sysrq-trigger
echo u > /proc/sysrq-trigger

oder wenn Sie das System nur ausschalten möchten:

echo o > /proc/sysrq-trigger

Magische Tastenkombinationen

Es gibt auch Tastenkombinationen, die vom Kernel interpretiert werden:

Alt+ SysRq / Print Screen+Command Key

Befehlstasten:

R- Übernehmen Sie die Kontrolle über die Tastatur von X.
E- Senden Sie SIGTERM an alle Prozesse, damit diese ordnungsgemäß beendet werden können.
I- Senden Sie SIGKILL an alle Prozesse, damit diese sofort beendet werden.
S- Spülen Sie die Daten auf die Festplatte.
U- Hängen Sie alle Dateisysteme schreibgeschützt wieder ein.
B- Neu starten.

Zitat aus dem Magic SysRq Key Wiki :

Eine gebräuchliche Verwendung des magischen SysRq-Schlüssels ist das Ausführen eines sicheren Neustarts eines Linux-Computers, der ansonsten blockiert ist.

  1. Halten Sie die Tasten Altund SysRq(Druck) gedrückt.
  2. Während Sie diese gedrückt halten, geben Sie die folgenden Tasten im Abstand von mehreren Sekunden ein: REISUB .
  3. Der Computer sollte neu starten.

Eine Möglichkeit, sich daran zu erinnern, sind:

" R eboot E ven I f S ystem U tterly B roken" oder einfach das Wort " BUSIER " rückwärts lesen.

Verweise

Magic SysRq Key Wiki
Fedora SysRq

geedoubleya
quelle
11
Es ist wichtig zu beachten, dass das Herunterfahren eines sauberen Systems sogar weniger als 2 Sekunden dauern kann. Wenn ich poweroffmeinen Arch-Computer anrufe, kann ich nicht einmal das Abschaltprotokoll auf dem Bildschirm sehen ...
John WH Smith
Vor dem zweiten Echo sollten Sie sync( linux.about.com/library/cmd/blcmdl8_sync.htm ) ausführen , um sicherzustellen, dass Puffer, einschließlich Superblocks, auf die Festplatte geschrieben werden.
Arcege
Sie schlagen vor, das bWesen nicht zu echodieren o. Ist b besser
HumanityANDpeace
Es kommt darauf an, was du mit besser meinst. Die bOption ist zwar sehr schnell, syncdie Festplatten jedoch nicht , was nicht ideal ist. Es gibt jedoch viele Optionen, mit denen die Abschaltzeit verkürzt werden kann, einige davon sind extremer als andere. Es gibt auch eine panicOption. Lesen Sie das Wiki und probieren Sie es aus, um herauszufinden, was Ihren Anforderungen am besten entspricht.
Geedoubleya
Nun, bei meinem vermasselten System echo o /proc/sysrq-triggerschafft das einen Hang. Das System bleibt eingeschaltet. In der Tat ist das bSystem weg. Ein Neustart bedeutet jedoch, dass der Arbeitsspeicher beibehalten werden kann. Dies ist eine Sicherheitsanfälligkeit, die ich gerne hätte, wenn bdas System am Ende ausgeschaltet ist. Leider funktioniert dies nicht mit oOption in meinem System. Vielen Dank für den Vorschlag an Sie und auch an @ Pandya
humanityANDpeace
8

Der böse Ansatz ist shutdown -h -n now.

Beachten Sie, dass dies keine Bereinigung bewirkt, sodass Dateisysteme inkonsistent werden, Datenbanken kaputt gehen usw., das System jedoch sehr schnell heruntergefahren wird.

Simon Richter
quelle
1
danke, das hört sich interessant an: ist diese -noption dokumentiert und noch in der aktuellen version von shutdown?
HumanityANDpeace
1
Ja, das ist Standard. Der Kernel wird direkt angewiesen, alles zu löschen. Dieser Befehl wird normalerweise ab dem letzten Shutdown-Skript verwendet, wenn das reguläre Herunterfahren abgeschlossen ist.
Simon Richter
7
Ich kann jedoch nicht genug betonen, dass dies höchstwahrscheinlich negative Auswirkungen haben wird, da dies weitgehend dem Ziehen des Steckers entspricht.
Simon Richter
Wunderbar einfach und effektiv. Diese -n Option ist genau das, wonach ich gesucht habe. Vielen Dank für die Beantwortung der gestellten Frage. Sie wissen nicht, wie frustrierend es ist, eine Frage zu stellen und zu hören, wie die Nackenbärte Ihnen sagen, warum Ihre Frage falsch ist, anstatt sie nur zu beantworten. Ich würde diese Antwort fünfzig Mal positiv bewerten, wenn ich könnte. DANKE DIR.
Joshua Pech
4

Einige Distributionen bieten einen poweroffeinfacheren Befehl als shutdown.

Verwenden Sie es mit:

poweroff -f

führt eine Disk-Synchronisierung durch und schaltet sich dann aus. Dies ist ein guter Kompromiss zwischen einer hohen Geschwindigkeit und einem minimalen Herunterfahren, um sicherzustellen, dass die Dateisysteme nicht beschädigt werden.

Wertigkeit
quelle
0

Versuchen Sie es mit dem Befehl init:

init 0
Stuxnet78
quelle