update-manager
Обновление программного обеспечения появляется и показывает обновления безопасности для Firefox, например. Естественно, я нажму «Установить сейчас», чтобы продолжить.
Тем не менее, что произойдет, если у меня все еще будет запущен Firefox? Будет ли он обновлять Firefox? Будет ли обновление пропущено и просто всплывет в следующий раз, снова? Будет ли обновление принудительно закрывать Firefox и, возможно, вылетать? Будет ли оно только частично обновлять программное обеспечение и, возможно, сломать мою установку Firefox?
Ответы:
Вы должны думать о Windows. Unix сделал это правильно, а затем появилась Windows и разработала неправильные способы ведения дел.
В Windows замена файла, который используется запущенным процессом, может плохо повлиять на этот процесс. Процесс будет ссылаться на местоположения в этом файле и получать из него неверную информацию, обычно с катастрофическими результатами. Вот почему обновление Windows обычно требует перезагрузки, чтобы гарантировать, что все процессы используют правильные версии библиотек и т. Д.
В Unix, когда файл был открыт процессом, этот файл всегда будет доступен для процесса, даже если исходный файл будет удален из файловой системы .
После обновления файловая система будет содержать другую версию файла, и все процессы, которые запускаются после обновления, будут использовать этот новый файл. Но, в отличие от Windows, все старые процессы Unix будут продолжать использовать исходные файлы, с которых они начали. Даже если они больше не доступны через файловую систему, эти файлы будут сохраняться до тех пор, пока их использует любой процесс. В конце концов, когда файлы не используются никакими процессами, старая версия файлов будет окончательно удалена.
Конечно, вы можете решить перезапустить Firefox (или другие процессы), если хотите сразу воспользоваться преимуществами обновления. Выбор за вами.
источник
Как правило, обновление программы, пока она уже открыта, не является проблемой - как объяснили другие авторы, запущенный процесс может продолжаться, даже если его исполняемый файл удален.
Тем не менее, из-за многопроцессной модели Firefox, вы можете получить приглашение перезапустить его после обновления в любом случае. Это связано с тем, что Firefox порождает новые процессы для изоляции разных веб-сайтов, поэтому, если он порождает новый процесс после того, как вы обновили его, но до перезапуска Firefox, новый процесс будет более новой версией Firefox, чем остальная часть браузера. Это может вызвать различные проблемы, поэтому Firefox может попросить вас перезапустить его, прежде чем продолжить.
Кстати, Chrome избегает этого , используя процесс «зиготы», который бездействует; когда браузеру нужно запустить новый процесс, вместо того, чтобы просить ОС снова выполнить исполняемый файл браузера (который будет выполнять возможно обновленный двоичный файл), он просит процесс zygote дублировать себя, и одна из копий затем становится обычным средством визуализации. процесс.
источник