Warum muss ich den Computer nach der Installation neuer Software neu starten?


38

Warum muss ich manchmal meinen Computer nach der Installation neuer Software neu starten und manchmal nicht?

Gibt es einen Grund, warum dieser Neustart erforderlich ist oder warum es nicht immer so oder so ist?


2
Es ist im Grunde, um die Registrierung zu aktualisieren
Dwayne Samuels

4
In einigen Fällen können Sie einen Dienst einfach neu starten, anstatt ihn neu zu starten.
Ccook


8
@ Dwayne Die meisten Probleme sind mit gesperrten Dateien (DLLs) nicht die Registrierung. Die Registrierung wird verwendet, um Windows mitzuteilen, welche Dateien beim Neustart ersetzt werden sollen. Dies ist jedoch nicht der Grund, warum der Neustart erforderlich ist.
Ian Ringrose

Antworten:


38

Es hängt davon ab, ob.

Wenn die zu installierende Software einen wesentlichen Bestandteil des Betriebssystems betrifft, ist ein Neustart erforderlich. Zum Beispiel ein neuer Kernel für das Betriebssystem.

Auf Windows-Systemen wird es häufig verwendet, da Benutzer als zu dumm angesehen werden, um ihre Computer ordnungsgemäß zu verwenden. Beispielsweise veröffentlicht Microsoft Details zum Ändern des für das Netzwerk verwendeten "Knotentyps" auf seiner Website , einschließlich der Anweisung zum "Neustarten des Computers", wenn nur ein Neustart eines Netzwerkdienstes erforderlich ist, wie hier beschrieben . Da wir Benutzer zu dumm sind, um einen Dienst neu zu starten, werden wir aufgefordert, alles neu zu starten.

Bei einigen Software-Komponenten bin ich zu dem Schluss gekommen, dass dies eine Gewohnheit ist und oftmals auch dann nicht erforderlich ist, wenn man dazu aufgefordert wird. Wenn ich nicht der Meinung bin, dass eine Software dem Betriebssystem etwas Wesentliches hätte anhaben sollen, störe ich eher nicht und habe keine Probleme festgestellt (und wenn es Probleme gäbe, wären sie leicht zu lösen).


6
Genau. In diesen Tagen gibt es keinen Grund, das System neu zu starten, es sei denn, sie aktualisieren eine wichtige Systemdatei oder einen Treiber. Oft sind es Entwickler, die sicherstellen wollen, dass sie "alle Grundlagen abdecken".
Surfasb

1
Wenn es sich um ein älteres Installationsprogramm handelt, wird möglicherweise nur ein Neustart angefordert, unabhängig davon. Wenn es sich um einen naiven Entwickler handelt, kann er so eingestellt sein, dass er zum Neustart auffordert, unabhängig davon, ob er benötigt wird oder nicht. Neuere Installationsprogramme, die die Funktionen in MSI richtig nutzen, können tatsächlich melden, welche Anwendungen die erforderlichen Dateien (DLLs usw.) geöffnet haben, und den Benutzer auffordern, sie zu stoppen. Sie werden nur dann aufgefordert, wenn sie die Anwendungen laufen lassen für einen Neustart. Es ist so ziemlich ein schlampiges Durcheinander, nichts zwingt Entwickler dazu, MSI zu verwenden, geschweige denn, es richtig zu verwenden.
Stephanie

15

Manchmal nimmt eine Software eine Änderung vor, die nicht wirksam wird, während der Computer verwendet wird. Einige Gründe könnten sein - eine Datei wird verwendet, die Änderung kann nur während des Hochfahrens des Computers auftreten, es kann ein Sicherheitsproblem geben, das nur durchgeführt werden kann, bevor das Netzwerk des Computers aktiv ist, möglicherweise würde der Virenscanner die Funktion beeinträchtigen Installieren.

Manchmal ist es nur eine schlampige Programmierung durch die Entwickler.

Ich bin mir sicher, dass es noch viel mehr gibt.


1
Welche Änderungen können insbesondere nicht wirksam werden, wenn der Computer verwendet wird?
Anderson Green

13

Wenn Sie neue Software installieren, muss häufig eine DLL (Datei), die von vielen anderen Softwarepaketen verwendet wird, auf eine neue Version aktualisiert werden. (Dies ist viel wahrscheinlicher, wenn Sie eine bereits installierte Anwendung aktualisieren.)

Wenn die DLL von einer laufenden Anwendung verwendet wird, wird ein Teil davon in den Speicher geladen und der Rest wird bei Bedarf von der Festplatte gelesen. Daher wird die DLL auf der Festplatte gesperrt. (Denken Sie an die Probleme, wenn es nicht gesperrt war!)

Eine gesperrte DLL kann nicht aktualisiert werden. Das Installationsprogramm fordert Windows daher auf, die DLL beim nächsten Neustart des Computers durch die neue Version zu ersetzen. Daher ist ein Neustart erforderlich.

Einige bessere Installationsprogramme teilen Ihnen mit, welche Anwendungen vor dem Ausführen des Installationsprogramms geschlossen werden sollten, damit die DLL ohne Neustart aktualisiert werden kann. Dies macht die Benutzeroberfläche des Installationsprogramms jedoch komplexer und führt zu mehr Supportanfragen.

Ein Installationsprogramm für eine Anwendung kann auch veranlassen, dass die Anwendung ihren Status speichert, sich selbst herunterfährt und nach der Aktualisierung der DLL neu startet. Dies ist nur möglich, wenn die DLL von einer einzelnen Anwendung verwendet wird. Die meisten selbstaktualisierenden Anwendungen tun dies - dies sollte die Norm für Massenmarktanwendungen sein, wenn viele Benutzer vorhanden sind.

All dies kann zu einer komplexen Logik führen, die schwer zu testen ist. Das Testen von Installationsprogrammen nimmt viel Zeit in Anspruch, da Sie versuchen müssen, festzustellen, in welchem ​​Zustand sich der Computer eines Benutzers befindet. Daher ist es für ein Installationsprogramm häufig am besten, einfach zu sein und immer zu funktionieren, auch wenn dies zu einigen weiteren Neustarts für den Benutzer führt .

Es kommt nicht oft vor, dass sich ein Benutzer aufgrund eines Neustarts des Installationsprogramms für den Kauf einer anderen Anwendung entscheidet. Daher verwendet der Anbieter die erforderliche Zeit (Geld), um den Benutzer zum Kauf seiner Anwendungen zu bewegen.

Wie oft hatten Sie Probleme nach der Installation einer Anwendung, die sich beim Neustart von selbst aussortiert hat? Denken Sie an die Supportkosten vieler Benutzer, die mit Problemen telefonieren, die nur durch einen Neustart behoben werden. Als Entwickler kann es schnell sehr anstrengend werden, den Benutzer nach der Installation der Software zu veranlassen, einen Neustart durchzuführen, auch wenn Sie der Meinung sind, dass dies nicht erforderlich ist.

----------

Die meisten Betriebssysteme und Software wurden in den Tagen geschrieben, als Speicherplatz und Speicher viel Geld kosteten . Es ist jetzt eine Bewegung für Anwendungen, um eine private Kopie aller DLLs zu haben, die sie verwenden, wodurch ein Upgrade des Radiergummis durchgeführt wird, aber mehr Speicherplatz verwendet wird.

Auf Servern wird dies mit "Containern" durchgeführt, jedoch funktionieren "Container" für Desktop-Software nicht gut, da Sie mit einer anderen Anwendung auf die von einer Anwendung gespeicherten Daten zugreifen möchten. (Ansonsten einfach ein iPhone benutzen.)


7

Der Grund dafür ist, dass Sie abstürzen, wenn Sie dies nicht tun. Von Raymond Chen :

Auch wenn Sie eine verwendete Datei ersetzen, enthält das System möglicherweise noch Code, der die alte Version verwenden möchte. Angenommen, Sie haben zwei Dateien, die zusammenarbeiten:

  • A.dll
  • B.dll

Sie geben einen Patch heraus, der beide Dateien aktualisiert, aber A.dllverwendet wird. Kein Problem. Sie ersetzen einfach beide. Infolgedessen verwenden Programme, die noch verwendet wurden, weiterhin A.dlldie alte Version, aber neue Programme verwenden die neue. Und alle Programme bekommen die neue Version von B.dll.

Nun A.dllbeschließt ein Programm, das die alte Version verwendet hat B.dll, eine Funktion aufzurufen. Es erwartet natürlich die alte Version von , erhält jedoch stattdessen die neue Version. Je nachdem, welche Art von Änderung Sie vorgenommen haben B.dll, funktioniert dieser Aufruf möglicherweise - oder er kann abstürzen. Beide DLLs gehen davon aus, dass der Partner aus derselben übereinstimmenden Menge stammt.


Es gibt Wege, um das, was Sie beschreiben, aber sie erfordern Nachdenken.
Daniel R Hicks

2

Um ganz ehrlich zu sein, ist es für die Softwareentwickler weniger arbeitsaufwendig (und daher auch weniger kostspielig), davon auszugehen, dass Updates immer zu einem Neustart führen. Dies ist wahrscheinlich ebenso eine Entscheidung der Beancounter wie der Entwickler.

Letztendlich gibt es nur sehr wenige Aktualisierungen, die in einer idealen Welt nicht ohne Neustart durchgeführt werden könnten, aber es erfordert eine Menge Vorplanung, und es gibt einige Risiken angesichts der Vielzahl der möglichen Konfigurationen, die ein System haben könnte.


0

Dies hat damit zu tun, dass es sehr schwierig ist, den Code zu ändern, da er ausgeführt wird, ohne größere Probleme zu verursachen. Die Lösung: Beenden Sie alles, bevor Sie den Code ändern. Auf diese Weise können Sie sicher sein, dass nichts ausgeführt wird. Es ist ein Brute-Force-Hack, der in den meisten Fällen, in denen er angeblich benötigt wird, weitgehend unnötig ist, aber absolut notwendig sein kann, insbesondere, wenn Sie gerade besonders wichtigen Code aktualisieren. Es gibt tatsächlich eine ganze Firma, die sich darauf spezialisiert hat, Aktualisierungen vorzunehmen, für die für diesen besonders wichtigen Code KEIN Neustart erforderlich ist. Die Art und Weise, wie sie es tun, ist in diesem Artikel http://www.ksplice.com/paper .


-1

Sie müssen neu starten, wenn wichtige Systemdateien für Windows geändert werden, da Windows das Ändern dieser Dateien während der Verwendung nicht zulässt. Daher erfordern die meisten Updates von Windows Update einen Neustart, ebenso wie Programme, die sich in Windows integrieren (z. B. Antivirus). Bis zum Neustart kann Windows die letzten erforderlichen Schritte zum "Installieren" des Programms nicht ausführen.

Sie können dies mit Linux vergleichen, für das Sie selten einen Neustart durchführen müssen. Selbst wenn Sie zum Neustart aufgefordert werden, müssen Sie sich normalerweise nur abmelden und wieder anmelden. Dies liegt daran, dass eine typische Linux-Umgebung aus vielen verschiedenen Programmen besteht, die zusammen ein vollständiges Betriebssystem erstellen. Wenn eine wichtige Datei während einer Installation geändert wird, müssen Sie in der Regel nur das Programm neu starten, das die Datei verwendet.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.