Installieren
Ich bin jetzt schon eine ganze Weile Programmierer, aber ich bin immer noch ein bisschen verwirrt in tiefen, internen Dingen.
Jetzt. Mir ist klar, dass es auch keine gute Idee ist:
- töte -9 einen Prozess (schlecht)
- Spontan den Netzstecker eines laufenden Computers oder Servers ziehen (schlimmer)
Manchmal muss man es jedoch einfach tun. Manchmal reagiert ein Prozess einfach nicht, egal was Sie tun, und manchmal reagiert ein Computer einfach nicht, egal was Sie tun.
Nehmen wir ein System an, auf dem Apache 2, MySQL 5, PHP 5 und Python 2.6.5 über mod_wsgi ausgeführt werden.
Hinweis: Mich interessiert hier Mac OS X am meisten, aber eine Antwort, die sich auf jedes UNIX-System bezieht, würde mir helfen.
Mein Konzern
Jedes Mal, wenn ich einen dieser Schritte ausführen muss, insbesondere den zweiten, mache ich mir große Sorgen, dass etwas kaputt gegangen ist. Eine Datei könnte irgendwo beschädigt sein - wer weiß welche Datei? Auf dem Computer befinden sich über 1.000.000 Dateien.
Ich verwende häufig OS X, daher führe ich einen "Verify Disk" -Vorgang über das Festplatten-Dienstprogramm aus. Es werden keine Probleme gemeldet, aber ich bin immer noch besorgt darüber.
Was ist, wenn irgendwo eine Konfigurationsdatei kaputt geht? Oder noch schlimmer, was ist, wenn eine Binärdatei irgendwo beschädigt ist. Oder eine Skriptdatei ist jetzt irgendwo beschädigt. Was ist, wenn Hardware beschädigt ist?
Was ist, wenn ich es erst nächsten Monat in einem kritischen Szenario herausfinde, wenn die Korruption oder der Schaden eine Katastrophe verursacht?
Oder was ist, wenn wertvolle Daten bereits verloren gehen?
Meine Hoffnung
Ich hoffe, dass diese Bedenken und Sorgen unbegründet sind. Immerhin, nachdem dies viele Male zuvor getan wurde, ist noch nichts wirklich Schlimmes passiert. Das Schlimmste ist, dass ich einige MySQL-Tabellen reparieren musste, aber anscheinend keine Daten verloren habe.
Aber wenn meine Sorgen nicht unbegründet sind und in Situation 1 oder 2 wirklicher Schaden entstehen kann, dann hoffe ich, dass es einen Weg gibt, dies zu erkennen und dagegen zu verhindern.
Meine Fragen)
Könnte dies daran liegen, dass moderne Betriebssysteme so konzipiert sind, dass in diesen Szenarien nichts verloren geht? Könnte dies daran liegen, dass moderne Software so konzipiert ist, dass nichts verloren geht? Was ist mit modernem Hardware-Design? Welche Maßnahmen sind vorhanden, wenn Sie den Netzstecker ziehen?
Meine Frage ist, was genau in diesen beiden Szenarien schief gehen kann und welche Schritte sollten unternommen werden, um das Problem zu beheben?
Ich habe den Eindruck, dass eine Sache, die schief gehen kann, darin besteht, dass einige Programme ihre Daten möglicherweise nicht auf die Festplatte geschrieben haben, also alle hochaktuellen Daten, die auf die Festplatte geschrieben werden sollten (z. B. einige Sekunden vor dem Stromausfall) ) könnte verloren gehen. Aber was ist darüber hinaus? Und kann gerade dieses Problem des 5-Sekunden-Datenverlusts ein System zerstören?
Was ist mit der Beschädigung von zufälligen Dateien, die sich irgendwo in dem riesigen Wald von Dateien auf meinen Festplatten verstecken?
Was ist mit Hardwareschäden?
Was würde mir am meisten helfen
Detaillierte Beschreibungen darüber, was intern geschieht, wenn Sie entweder einen Prozess beenden oder das gesamte System einschalten. (Es scheint sofort, aber kann jemand es für mich verlangsamen?)
Erklärungen aller Dinge, die in diesen Szenarien schief gehen könnten, zusammen mit (groben) Wahrscheinlichkeiten (dh dies ist sehr unwahrscheinlich, aber dies ist wahrscheinlich) ...
Beschreibungen der Maßnahmen, die in moderner Hardware, Betriebssystemen und Software vorhanden sind, um Schäden oder Beschädigungen zu vermeiden, wenn diese Szenarien auftreten. (um mich zu trösten)
Anweisungen, was nach einem Kill -9 oder einem Stromausfall zu tun ist, über das "Überprüfen der Festplatte" hinaus, um wirklich sicherzustellen, dass nichts auf dem Laufwerk beschädigt oder beschädigt ist.
Maßnahmen, die zur Verstärkung eines Computer-Setups ergriffen werden können, damit potenzielle Schäden gemindert werden, wenn etwas getötet oder die Stromversorgung unterbrochen werden muss.
Einige Informationen zu Binärdateien - stimmt es nicht, dass in der Apache-Binärdatei oder in einer Bibliothek ein oder zwei zufällige Bytes beschädigt sein könnten, die erst später herauskommen und ein Problem verursachen würden? Wie kann ich mir versichern, dass dies nicht aufgrund des Stromausfalls oder der Tötung geschehen ist?
Vielen Dank!