Pojawi się narzędzie do aktualizacji oprogramowania update-manager
i wyświetli na przykład aktualizacje zabezpieczeń dla przeglądarki Firefox. Oczywiście kliknę „Zainstaluj teraz”, aby kontynuować.
Co się jednak stanie, jeśli nadal będę mieć uruchomionego Firefoksa? Czy nadal będzie aktualizować Firefoksa? Czy aktualizacja zostanie pominięta i pojawi się ponownie następnym razem? Czy aktualizacja zmusi Firefoksa do zamknięcia, a może awarii? Czy to tylko częściowo zaktualizuje oprogramowanie i ewentualnie przerwie instalację Firefoksa?
Odpowiedzi:
Musisz myśleć o systemie Windows. Unix zrobił to dobrze, a później system Windows pojawił się i opracował niewłaściwe sposoby działania.
W systemie Windows zastąpienie pliku, który jest używany przez uruchomiony proces, może mieć zły wpływ na ten proces. Proces będzie odwoływał się do lokalizacji w tym pliku i uzyskiwał z niego nieprawidłowe informacje, zwykle z katastrofalnymi skutkami. Dlatego aktualizacja systemu Windows zazwyczaj wymaga ponownego uruchomienia, aby upewnić się, że wszystkie procesy używają poprawnych wersji bibliotek itp.
W systemie Unix, gdy plik zostanie otwarty przez proces, ten sam plik będzie zawsze dostępny dla procesu, nawet jeśli oryginalny plik zostanie usunięty z systemu plików .
Po aktualizacji system plików będzie zawierał inną wersję pliku, a wszystkie procesy, które rozpoczną się po aktualizacji, wykorzystają ten nowy plik. Jednak w przeciwieństwie do systemu Windows wszystkie stare procesy uniksowe będą nadal korzystać z oryginalnych plików, które rozpoczęły. Mimo że nie są już dostępne za pośrednictwem systemu plików, pliki te będą przechowywane tak długo, jak długo korzysta z nich jakikolwiek proces. Ostatecznie, gdy żaden proces nie korzysta z plików, stara wersja plików zostanie ostatecznie usunięta.
Możesz oczywiście zrestartować Firefox (lub inne procesy), jeśli chcesz od razu skorzystać z aktualizacji. Wybór nalezy do ciebie.
źródło
Zazwyczaj aktualizacja programu, gdy jest już otwarty, nie stanowi problemu - jak wyjaśnili to inni autorzy, działający proces może być kontynuowany, nawet jeśli jego plik wykonywalny zostanie usunięty.
Jednak ze względu na wieloprocesowy model Firefoksa po aktualizacji może pojawić się monit o ponowne uruchomienie. Wynika to z faktu, że Firefox odradza nowe procesy izolowania różnych stron internetowych, więc jeśli odradza się nowy proces po jego aktualizacji, ale przed ponownym uruchomieniem Firefoksa, nowy proces będzie nowszą wersją Firefoxa niż reszta przeglądarki. Może to powodować różne problemy, więc Firefox może poprosić o ponowne uruchomienie przed zezwoleniem na kontynuację.
Nawiasem mówiąc, Chrome unika tego , wykorzystując proces „zygoty”, który nic nie robi; gdy przeglądarka musi zrestartować nowy proces, zamiast prosić system operacyjny o ponowne uruchomienie pliku wykonywalnego przeglądarki (który wykonałby ewentualnie zaktualizowaną wersję binarną), prosi proces zygote o zduplikowanie się, a jedna z kopii staje się normalnym rendererem proces.
źródło