PID 0 किस प्रक्रिया की है?


55

मैं लिनक्स में शुरू होने वाली प्रक्रिया की तलाश कर रहा हूं जिसमें प्रक्रिया आईडी है। मुझे पता है initकि पीआईडी ​​1 है, जो लिनक्स में पहली प्रक्रिया है, क्या पीआईडी ​​0 के साथ कोई प्रक्रिया है?



1
प्रोसेस आईडी O SWAPPER है। प्रक्रिया आईडी 1 init है।
अंकुर जैन

जवाबों:


51

विकिपीडिया पृष्ठ से शीर्षक: प्रक्रिया पहचानकर्ता :

विशेष रूप से प्रतिष्ठित प्रक्रिया ID के साथ दो कार्यों के होते हैं: swapper या Sched प्रक्रिया ID 0 है और के लिए जिम्मेदार है पेजिंग , और वास्तव में एक सामान्य कर्नेल के बजाय का हिस्सा है उपयोगकर्ता के मोड प्रक्रिया। प्रक्रिया ID 1 आमतौर पर init प्रक्रिया है जो सिस्टम को शुरू करने और बंद करने के लिए मुख्य रूप से जिम्मेदार है। मूल रूप से, प्रक्रिया ID 1 को विशेष रूप से किसी भी तकनीकी उपायों द्वारा init के लिए आरक्षित नहीं किया गया था: यह बस इस आईडी के कर्नेल द्वारा आहूत पहली प्रक्रिया होने के स्वाभाविक परिणाम के रूप में थी। अधिक हाल ही में यूनिक्स प्रणालियों में आमतौर पर अतिरिक्त कर्नेल घटक होते हैं जो 'प्रक्रियाओं' के रूप में दिखाई देते हैं, इस मामले में पीआईडी ​​1 सक्रिय रूप से पुराने सिस्टम के साथ स्थिरता बनाए रखने के लिए इनिट प्रक्रिया के लिए आरक्षित है।

आप इसका प्रमाण देख सकते हैं यदि आप मूल पीआईडी ​​(पीपीआईडी) initऔर kthreadd:

$ ps -eaf
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 Jun24 ?        00:00:02 /sbin/init
root         2     0  0 Jun24 ?        00:00:00 [kthreadd]

kthreaddकर्नेल थ्रेड डेमॉन है। सभी धागे इस धागे से कांटे गए हैं। आप इसका प्रमाण देख सकते हैं यदि आप अन्य प्रक्रियाओं का उपयोग करके psदेख रहे हैं और देख रहे हैं कि उनका पीपीआईडी ​​कौन है:

$ ps -eaf
root         3     2  0 Jun24 ?        00:00:57 [ksoftirqd/0]
root         4     2  0 Jun24 ?        00:01:19 [migration/0]
root         5     2  0 Jun24 ?        00:00:00 [watchdog/0]
root        15     2  0 Jun24 ?        00:01:28 [events/0]
root        19     2  0 Jun24 ?        00:00:00 [cpuset]
root        20     2  0 Jun24 ?        00:00:00 [khelper]

ध्यान दें वे सभी हैं 2


तो अगर PID 0 स्वैगर है, तो क्या है kswapd[0-9]*, जो कि मेरे सिस्टम पर PID 52 है? यह पेजिंग के लिए भी जिम्मेदार लगता है।
रुस्लान

1
@Ruslan - यदि आपके पास प्रश्नों का अनुसरण है, तो कृपया उन्हें मुख्य साइट पर पूछें, टिप्पणी इसके लिए नहीं हैं। इस प्रश्न को अपने नए प्रश्न में संदर्भ दें।
SLM

अच्छी तरह से, लेकिन जब हम कांटा बच्चे की प्रक्रिया का उपयोग करके एक नई प्रक्रिया बनाते हैं तो 0 pid मिलता है ?
रोज़ट्रेलर

@roottraveller जरूरी नहीं कि जो भी माता-पिता पीआईडी ​​है, जहां कांटा हुआ हो, जो दिखाता है।
slm

10

से प्रक्रिया पहचानकर्ता विकि:

विशेष रूप से प्रतिष्ठित प्रक्रिया आईडी के साथ दो कार्य हैं: स्वैपर या शेड्यूल में प्रक्रिया 0 है और पेजिंग के लिए जिम्मेदार है, और वास्तव में सामान्य उपयोगकर्ता-मोड प्रक्रिया के बजाय कर्नेल का हिस्सा है।


6

pid 0शेड्यूलर के साथ प्रक्रिया है,

प्रक्रिया आईडी विवरण:
0 अनुसूचक
1 init प्रक्रिया
2 kflushd
3 kupdate
4 kpiod
5 kswapd
6 mdrecovery

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.