Disons que /usr/local/bin/ruby
s'exécute en arrière-plan, puis nous remplaçons ruby
par une version différente, voire supprimons ruby
.
Qu'adviendra-t-il de ceux qui exécutent des processus Ruby?
Cela dépend exactement de la façon dont l'exécutable est mis à jour. Si le même fichier est ouvert et que certaines parties sont modifiées, de mauvaises choses se produiront. S'il est supprimé, le fichier est supprimé de la structure de répertoires du système de fichiers, mais pas réellement dissocié (c'est-à-dire supprimé) jusqu'à ce que le dernier processus qui l'a ouvert ait exécuté, il se termine. Donc, si l'exécutable est supprimé et un nouveau avec le même nom écrit à sa place, l'ancien devrait continuer à fonctionner correctement.
Ils continueront. Peut-être tomber en panne horriblement s'ils essaient d'accéder à eux-mêmes et reçoivent quelque chose de complètement faux. Je ne le ferais pas à moins d'y être obligé :)
la source
la source
Je crois comprendre que le noyau Linux a un composant appelé le chargeur qui ouvre le fichier exécutable lui-même, contenant l'image, pendant le processus de chargement / liaison, et une fois terminé avec la liaison aux bibliothèques, etc., le chargeur ferme le fichier. Ainsi, ce processus se produit et est terminé au moment où le noyau lance réellement le processus.
Je ne sais pas si l'exécutable d'origine sur le disque doit être référencé si l'exécutable essaie ultérieurement d'importer des bibliothèques externes.
Je dirais, et d'après mon expérience, si vous supprimez l'exécutable sur le disque, l'exécutable chargé en mémoire n'est pas affecté. De même, si le fichier exécutable est remplacé par une version plus récente, les versions en cours d'exécution ne sont pas mises à jour "automatiquement" sauf si elles sont arrêtées et relancées.
J'ai eu des problèmes avec un contrôleur RAID qui a fait que le disque entier sur lequel le répertoire racine et les autres partitions étaient montées agissait soudainement comme s'il était déconnecté. Impossible de charger de nouveaux programmes, mais ceux en mémoire fonctionnaient bien, jusqu'à ce qu'ils aient besoin de fichiers du disque.
la source