est-il possible qu'un dossier comme /proc/4587
existe même s'il n'y a pas de processus qui a le PID 4587?
est-il possible qu'un dossier comme /proc/4587
existe même s'il n'y a pas de processus qui a le PID 4587?
Réponses:
S'il /proc
ne s'agit que du proc
montage (et que personne ne joue des tours avec des superpositions), non, un dossier basé sur pid n'existe que tant que le processus correspondant existe dans un certain état (y compris en tant que zombie). En fait, juste avant de retourner une entrée de répertoire pour un identifiant de processus, le noyau revalide l'existence du processus - donc au moment où une entrée de répertoire est retournée, le processus correspondant est toujours là. L'accès à un répertoire commence également par la recherche du processus correspondant. (Si les numéros de ligne changent, recherchez proc_pident_instantiate
et proc_pident_lookup
.)
Vous pouvez rencontrer des problèmes causés par la liste /proc
et l'utilisation des résultats plus tard (même quelques microsecondes plus tard): un processus peut être en cours d'exécution lorsque vous répertoriez /proc
et vous arrêter avant d'agir sur les résultats.
wait()
n'ont pas été appelés?
ps
affiche le processus, son /proc
répertoire devrait exister.
ps
accéder /proc
à l'information qu'il affiche.