"Reboot" oder "shutdown -r now": Welcher Neustart-Befehl ist sicherer?

49

Wir haben in unserer Organisation ungefähr 500 RedHat Linux-Maschinen.

Auf allen Computern, auf denen wir Anwendungen und Dienste installiert haben /etc/init.d, und auf Oracle RAC-Servern. Wir beabsichtigen, Updates auf allen Rechnern durchzuführen und danach einen Neustart durchzuführen.

Also habe ich mich gefragt, welcher Befehl sicherer ist:

reboot

oder

shutdown -r now
Dandan
quelle
1
wir haben alle art - als redhat 4,5,6,7
dandan
6
Lassen Sie uns zurückspulen: Warum gibt es Ihrer Meinung nach einen Unterschied in der Sicherheit?
Underscore_d
2
@underscore_d: Es ist nicht unangemessen zu glauben, dass es sich um einen "nur für den internen Gebrauch" bestimmten Befehl handelt, der nicht dieselben Schritte zum sauberen Herunterfahren ausführt. ZB verwendet einer den anderen, nachdem er einige erste Clean-Shutdown-Schritte ausgeführt hat. Natürlich wird in der Manpage erklärt, dass dies rebootnur ein Legacy-Befehl ist und weiterhin nur für die Rückwärtskompatibilität vorhanden ist.
Peter Cordes
1
@knowhy Eine Frage kann kein Duplikat einer Frage auf einer anderen Site sein.
Insane

Antworten:

50

Bei Red Hat-Systemen gibt es keinen funktionalen Unterschied zwischen rebootund shutdown -r now.

Tun Sie, was Ihnen leichter fällt.

ewwhite
quelle
13
Aber man lässt dich mehr tippen und ist grundsätzlich "cooler"!
Insane
Einer erfordert Superuser-Zugriff, der andere kann von jedem Benutzer (sofern nicht eingeschränkt) aus einer X-Sitzung ausgeführt werden.
Burhan Khalid
2
@BurhanKhalid Wenn sich zufällige Personen bei X-Sitzungen auf Servern anmelden, haben Sie möglicherweise größere Probleme, als sich zu fragen, welcher der beiden Befehle "sicherer" ist.
ein Lebenslauf
1
Zumindest auf Debian (obwohl ich bereitwillig zugeben , werde ich nicht über Red Hat wissen, aber Janne Pikkarainen Antwort schlägt es ähnlich sein, aber anders) halt, rebootund poweroffnehmen keinen Grund Nachricht noch eine Zeit, als Mikhail T. erklärt . Ich denke, ich würde ein Tool als etwas betrachten, das ein anderes nicht als "funktionalen Unterschied" betrachtet.
ein Lebenslauf
87

Das Herunterfahren ist vorzuziehen, da Sie hier den Grund für die drastische Aktion angeben können - etwas, das Sie immer tun sollten. Die Nachricht wird in den Protokollen für die Nachwelt aufgezeichnet. Zum Beispiel:

shutdown -r now 'Kernel upgrade requires reboot'

Sie können auch einen geplanten Neustart durchführen, indem Sie etwas anderes als nowdie Neustartzeit angeben:

shutdown -r 22:00 'Work around kernel memory leak'

Dann werden Ihre Benutzer regelmäßig daran erinnert, auszusteigen und so weiter - der Prozess wird ordentlicher und professioneller.

Mikhail T.
quelle
13

Wenn Sie einen Blick darauf werfen, in RHEL 7 beides /sbin/shutdownund /sbin/rebootsind eigentlich nur symbolische Links zum systemctlBefehl systemd . Verwenden Sie also, was Sie wollen. Kein funktionaler Unterschied, wie ewwhite sagte, auch nicht in früheren RHEL-Releases, in denen systemd noch nicht verwendet wurde.

Janne Pikkarainen
quelle
12
Ich finde dieses Argument nicht sehr überzeugend: Es ist offensichtlich, dass /sbin/shutdownund verhält /sbin/rebootsich nicht in allen Fällen gleich (insbesondere: /sbin/shutdownnicht standardmäßig neu starten!). Wenn sie also mit derselben ausführbaren Datei verknüpft sind, muss diese ausführbare Datei sein untersuchen ARGV[0]und sein Verhalten entsprechend anpassen. Während dies das Risiko unbeabsichtigter Unterschiede auf jeden Fall verringert , ist es kein zwingender Beweis dafür, dass es keine beabsichtigten funktionalen Unterschiede gibt, über die das OP möglicherweise informiert werden möchte.
Ruakh
3
Nehmen Sie nicht an, dass ein Symlink eine Äquivalenz impliziert, insbesondere wenn es sich um unterschiedliche Namen handelt.
McKenzm
ruakh hat recht - denken sie einen moment darüber nach, auch wenn rebootes mit symbol verbunden ist systemctl, sie können es nicht so benutzen, reboot status whatever.servicewie sie es mit letzterem tun würden, oder?
Grawity
9

Verwenden rebootist sicherer.

Die Verwendung rebootIhrer Absicht ist klar und es gibt keine Möglichkeit, sie mit etwas anderem zu verwechseln, was shutdown -t nowzu einigen Kopfschmerzen führen kann, wenn Sie auf einem Remote-Server mit eingeschränkter Kontrolle arbeiten.

Antzi
quelle
2
IMHO unterschätzte Antwort. Sehr oft vergessen wir, wie wichtig es ist, Absichten klar zu machen und wie viel Zeit und Worte es auf lange Sicht spart!
RoughTomato
1

Für modernes RHEL wird empfohlen, den Befehl systemctl zu verwenden, wie hier zusammengefasst : RHEL-Distributionen sollten den neuen Befehl systemctl verwenden, um das Ausschalten / Neustarten durchzuführen. Wie in den Hilfeseiten zum Neustart und Herunterfahren angegeben, handelt es sich um einen "Legacy-Befehl, der nur aus Kompatibilitätsgründen verfügbar ist".

Wenn Sie jedoch viele verschiedene Distributionen oder Distributionen verschiedener Jahrgänge verwenden, bleiben Sie vielleicht dabei shutdown -r now 'reason for shutdown'.

Der Hauptgrund für die Verwendung besteht rebootdarin, das Risiko zu vermeiden, dass bei der Verwendung shutdown -rauf einem Remotecomputer das Hinzufügen des -r vergessen wird. Dies kann leicht dazu führen, dass Sie sich nicht erneut anmelden können und den Remotecomputer (falls verfügbar) zum Neustarten des Computers verwenden müssen Maschine.

Robocat
quelle
0

Ältere Systeme haben definitiv zwischen shutdownund unterschieden reboot. Letzteres würde weder Dienste herunterfahren noch Festplattenpuffer synchronisieren. In heterogenen Umgebungen - oder um Präzedenzfälle zu vermeiden, die in Zukunft gefährlich sein könnten, wenn andere * ix-Implementierungen zum Einsatz kommen - ist es sinnvoll, sich daran zu shutdowngewöhnen.

user19151
quelle