यदि हम टाइप करते हैं ps -ef
तो हमें प्रक्रियाओं की एक सूची मिलती है। पीआईडी नंबर निरंतर क्यों नहीं हैं?
यदि हम टाइप करते हैं ps -ef
तो हमें प्रक्रियाओं की एक सूची मिलती है। पीआईडी नंबर निरंतर क्यों नहीं हैं?
जवाबों:
उबंटू पर वे निरंतर हैं। अन्य ऑपरेटिंग सिस्टम पर यह भिन्न हो सकता है।
कर्नेल PID को (RESERVED_PIDS, PID_MAX_DEFAULT) की सीमा में आवंटित करता है। यह प्रत्येक नाम स्थान में क्रमिक रूप से होता है (विभिन्न नामस्थानों में कार्य एक ही आईडी हो सकते हैं)। यदि सीमा समाप्त हो जाती है, तो पीआईडी असाइनमेंट चारों ओर घूमता है।
( /programming/3446727/how-does-linux-determine-the-next-pid )
हालांकि मन ...
स्टैकओवरफ़्लो पर कुछ विषय:
टिप्पणियों में पीआईडी की अस्मिता का परीक्षण करने के लिए एक कमांड है:
for i in {1..20}; do sh -c 'echo $$'; done
आम तौर पर पीआईडी निरंतर है लेकिन जब तक आप कमांड चलाते हैं तब तक कुछ प्रक्रिया मृत हो जाएगी ps -ef
।
इसके अलावा कुछ प्रक्रियाएं एक अन्य प्रक्रिया का सिर्फ एक उपप्रकार हो सकती हैं जो ps -ef
कमांड में नहीं दिखाई गई हैं । कुछ विस्तारित परिणाम देखने के लिए और आप निरंतर पीआईडी का उपयोग कर सकते हैंpstree
pstree -p
नमूना उत्पादन:
├─teamviewerd(3468)─┬─{teamviewerd}(3474)
│ ├─{teamviewerd}(3475)
│ ├─{teamviewerd}(3476)
│ ├─{teamviewerd}(3477)
│ ├─{teamviewerd}(3478)
जब आप दौड़ते ps -ef
हैं तो आप मूल प्रक्रिया को देखते हैं।
$ ps -ef | grep teamviewerd
root 3468 1 0 Jul15 ? 00:07:38 /opt/teamviewer9/tv_bin/teamviewerd -f