è possibile che /proc/4587
esista una cartella simile anche se non esiste un processo con PID 4587?
è possibile che /proc/4587
esista una cartella simile anche se non esiste un processo con PID 4587?
Risposte:
Se /proc
è solo il proc
mount (e nessuno sta giocando brutti scherzi con overlay), no, una cartella basata su pid esiste solo finché il processo corrispondente esiste in qualche stato (incluso come zombi). In effetti, appena prima di restituire una voce di directory per un id di processo, il kernel riconvalida l'esistenza del processo - quindi nel momento in cui viene restituita una voce di directory, il processo corrispondente è ancora lì. L'accesso a una directory inizia anche cercando il processo corrispondente. (Se i numeri di riga cambiano, cercare proc_pident_instantiate
e proc_pident_lookup
.)
È possibile /proc
riscontrare problemi causati dall'elenco e dall'utilizzo dei risultati in un secondo momento (anche alcuni microsecondi dopo): un processo può essere in esecuzione durante l'elenco /proc
e arrestarsi prima di agire sui risultati.
wait()
non erano stati chiamati su di loro?
ps
mostra il processo, la sua /proc
directory dovrebbe esistere.
ps
accede /proc
per trovare le informazioni che mostra.