Wie kann ein Computer heruntergefahren werden, wenn ein Mount / Service usw. nicht abgehängt werden kann?

412
J Collins

Manchmal ist ein Neustart erforderlich, wenn ein Computer in einem beliebigen Betriebssystem in einen fehlerhaften Zustand gerät. In Linux sagen wir, wenn ein Laufwerk nicht zwangsweise ausgehängt werden kann, auch wenn er gewaltsam ist, wie kann ein Befehl zum Herunterfahren es schaffen? Worauf hat das Herunterfahren Zugriff erhalten, um das Aushängen von Daten zu erzwingen usw., auf das vom Terminal aus nicht zugegriffen werden kann?

0
Von welchem ​​Betriebssystem reden wir? Was automatisch geschieht, hängt vom Betriebssystem ab. Was ein Benutzer eingreifen muss, hängt vom Betriebssystem ab. Ramhound vor 6 Jahren 0
Im Moment Linux, aber ich interessiere mich für beide Antworten. Das Problem ist, dass ich nicht weiß, wie ein Betriebssystem einen Prozess zwangsweise beenden kann. Als erste Antwort, in einem "zu schlechten" Fall, der heruntergefahren werden kann, kann kein Benutzer den Befehl kill beenden. In Windows und Linux passiert es, dass ein Dateihandle möglicherweise Dinge blockiert, und die einzige Lösung ist ein Neustart. J Collins vor 6 Jahren 0
In den meisten Fällen versuchen Befehle nur, etwas zu tun, nach diesem Zeitraum kann ein bestimmtes oder unbekanntes Verhalten auftreten. Ramhound vor 6 Jahren 0
Denken Sie daran, dass ein "Einhängepunkt" eine Speicherstruktur innerhalb der Kernel-Speicherstruktur ist, die von Kernel- und Benutzerraumsoftware überwacht wird. Unabhängig davon, was der Rest der Software darüber denkt, kann der Kernel diese Speicherstruktur immer zerstören. In den meisten Fällen wird die Integrität des Dateisystems nicht vor unvorhergesehenen Ereignissen geschützt, die durch schlechte Software oder schlechte Benutzer verursacht werden. Es ist nicht so, als ob ein Prozess jenseits des Punktes existiert, an dem der Kernel möchte, dass er existiert. es ist alles nur staatliche Verwaltung. Frank Thomas vor 6 Jahren 0

1 Antwort auf die Frage

2
Mokubai

Beim Herunterfahren versucht das System, alle geladenen Anwendungen oder Dienste ordnungsgemäß zu schließen. Die Anträge werden benachrichtigt, dass dies geschieht, und es wird eine kurze Frist eingeräumt, um die Flucht zu ermöglichen.

Der nächste Teil des Herunterfahrenprozesses veranlasst das Betriebssystem, die Dateisystemtreiber anzuweisen, ihre gespeicherten Daten auf das Speichergerät zu leeren. Dies sollte dazu führen, dass der Dateisystemtreiber das Dateisystem vor dem Herunterfahren desinfiziert.

Dann wird dem Laufwerk auch mitgeteilt, dass das Dateisystem eingeschaltet ist, um alle vorhandenen Hardware-Caches auf die Festplatte zu leeren.

Wenn es nach all dem immer noch Daten gibt, die die Festplatte sperren, ist dies ein Pech, da das System einfach heruntergefahren wird. Wenn eine Anwendung sich geweigert hat, ihre Daten zu speichern oder korrekt freizugeben, geht sie einfach verloren.

Die Frage ist also im abschließenden "zu schlechten" Szenario, ob es möglich ist, dies für einen Prozess nach Prozess, Service nach Service usw. zu tun? J Collins vor 6 Jahren 0
Nun, Sie können jeden Prozess in der Liste manuell durchgehen und bitten, sie zu beenden, aber es hilft nicht für einen Prozess, der abgestürzt ist oder schlecht geschrieben wurde und etwas verwaist hat. In diesem Fall besteht die Chance, dass alles ordentlich aufgeräumt wird und ein Neustart wahrscheinlich das Beste ist, was Sie tun können. Mokubai vor 6 Jahren 0
@JCollins - Das Erzwingen eines Prozesses wird bereinigt, wenn Dateien geöffnet wurden. Es hängt also von den Prozessen ab. Ramhound vor 6 Jahren 0
Bei IIRC werden alle Prozesse nach dem Verlassen von "init" beendet. Es ist jedoch durchaus möglich, dass Dateien aufgrund merkwürdiger Umstände und / oder Kernel-Fehler gesperrt bleiben. Daniel B vor 6 Jahren 0
Ich habe Kernel-Bugs ignoriert und Fälle gesehen, in denen "smb" -Prozesse nicht gut beendet wurden und "init" (oder "systemd" in meinem CentOS) der in "pstree" gezeigte Prozessbesitzer wurde. Wenn alle Varianten von "kill" fehlschlagen, welche Optionen bleiben vor einem Neustart übrig, wobei darauf hingewiesen wird, dass der übergeordnete Prozess nicht beendet werden kann. J Collins vor 6 Jahren 0