/ Proc / PID, PID çalışmadığında hala var olabilir mi?


11

/proc/45874587 içeren bir işlem olmasa bile böyle bir klasörün mevcut olması mümkün mü?


1
/ Proc / N denetlemesinin PID N'nin çalışıp çalışmadığını görmenin güvenli / güvenilir bir yolu olup olmadığını merak ediyor musunuz?
Andy Lester

İşlem bittikten sonra teorik olarak / proc içinde kalıntı olup olmadığını merak ediyordum.
David Dai

Yanıtlar:


25

Eğer /procsadece procmontaj (ve hiç kimse bindirmeleri ile oyun oynuyor), hayır, bir pid tabanlı klasörü yalnızca (zombi olarak dahil) sürece tekabül süreç bazı devlet var olarak var. Aslında, işlem kimliği için bir dizin girdisini döndürmeden hemen önce, çekirdek işlemin varlığını yeniden doğrular - bu nedenle bir dizin girdisi döndürüldüğünde, karşılık gelen işlem hala oradadır. Bir dizine erişmek de ilgili işleme bakarak başlar. (Satır numaraları için, görünümünü değiştirmek durumunda proc_pident_instantiateve proc_pident_lookup.)

/procSonuçları daha sonra listelemek ve kullanmaktan kaynaklanan sorunlarla karşılaşabilirsiniz (birkaç mikrosaniye sonra bile): listelediğinizde bir işlem çalışıyor olabilir /procve sonuçlar üzerinde işlem yapmadan önce durabilir.


3
Yürütmeyi bitirmiş, ancak wait()bunlara çağrılmamış süreçler ne olacak?
el.pescado

2
İyi bir nokta @ el.pescado, hızlı bir kontrol zombi süreçlerinin hala dizinleri olduğunu gösterir. Cevabımı güncelleyeceğim, teşekkürler!
Stephen Kitt

Temel olarak, psişlemi gösterirse, /procdizini mevcut olmalıdır.
Barmar

@Barmar aslında “zorunluluk”: Gösterdiği bilgileri bulmak için pserişir /proc.
Stephen Kitt
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.