Le programme de mise à jour du logiciel update-manager
apparaît et affiche des mises à jour de sécurité pour Firefox, par exemple. Naturellement, je clique sur "Installer maintenant" pour continuer.
Cependant, que se passe-t-il si j'ai toujours Firefox en cours d'exécution lorsque je fais cela? Va-t-il toujours mettre à jour Firefox? La mise à jour sera-t-elle ignorée et réapparaîtra-t-elle la prochaine fois? La mise à jour forcera-t-elle Firefox à se fermer et peut-être à planter? Cela ne mettra-t-il que partiellement à jour le logiciel et éventuellement interrompra mon installation de Firefox?
Vous devez penser à Windows. Unix l'a fait correctement, puis plus tard, Windows est arrivé et a développé de mauvaises façons de faire les choses.
Sous Windows, le remplacement d'un fichier en cours d'utilisation par un processus en cours d'exécution peut gravement affecter ce processus. Le processus référencera les emplacements dans ce fichier et en obtiendra des informations incorrectes, généralement avec des résultats catastrophiques. C'est pourquoi une mise à jour Windows nécessite généralement un redémarrage pour s'assurer que tous les processus utilisent les versions correctes des bibliothèques, etc.
Avec Unix, une fois qu'un fichier a été ouvert par un processus, ce même fichier sera toujours disponible pour le processus même si le fichier d'origine est supprimé du système de fichiers.
Après une mise à jour, le système de fichiers contiendra une version différente du fichier et tous les processus qui démarrent après la mise à jour utiliseront ce nouveau fichier. Mais, contrairement à Windows, tous les anciens processus Unix continueront à utiliser les fichiers d'origine avec lesquels ils ont commencé. Même s'ils ne sont plus accessibles via le système de fichiers, ces fichiers persisteront tant que n'importe quel processus les utilisera. Finalement, quand aucun processus n'utilise les fichiers, l'ancienne version des fichiers sera finalement supprimée.
Vous pouvez bien sûr décider de redémarrer Firefox (ou d'autres processus) si vous souhaitez bénéficier immédiatement des avantages de la mise à jour. Le choix t'appartient.
En règle générale, la mise à jour d'un programme alors qu'il est déjà ouvert ne pose aucun problème - comme l'ont expliqué les autres répondants, un processus en cours peut continuer à s'exécuter même si son exécutable est supprimé.
Cependant, en raison du modèle multi-processus de Firefox, vous pouvez quand même obtenir une invite pour le redémarrer après une mise à jour. C'est car Firefox génère de nouveaux processus pour isoler différents sites Web, donc s'il génère un nouveau processus après l'avoir mis à jour mais avant de redémarrer Firefox, le nouveau processus sera une version plus récente de Firefox que la reste du navigateur. Cela peut entraîner divers problèmes, donc Firefox peut vous inviter à le redémarrer avant de vous permettre de continuer.
Par ailleurs, Chrome évite cela en utilisant un processus "zygote" qui ne fait rien; lorsque le navigateur doit générer un nouveau processus, au lieu de demander au système d'exploitation de exécuter à nouveau l'exécutable du navigateur (qui exécuterait le binaire éventuellement mis à jour), il demande au processus zygote de se dupliquer, et l'une des copies devient alors un processus de rendu normal.