प्रक्रिया आईडी का अधिकतम मूल्य क्या है?
इसके अलावा, क्या एक प्रक्रिया आईडी बदलना संभव है?
प्रक्रिया आईडी का अधिकतम मूल्य क्या है?
इसके अलावा, क्या एक प्रक्रिया आईडी बदलना संभव है?
जवाबों:
लिनक्स पर, आप इसके साथ अपने सिस्टम के लिए अधिकतम PID मान पा सकते हैं:
$ cat /proc/sys/kernel/pid_max
यह मान उसी फ़ाइल का उपयोग करके भी लिखा जा सकता है, हालाँकि मूल्य केवल 32 बिट सिस्टम के लिए अधिकतम 32768 तक या 64 बिट के लिए 4194304 तक बढ़ाया जा सकता है:
$ echo 32768 > /proc/sys/kernel/pid_max
यह इस मूल्य को 32 बिट सिस्टम पर पाए जाने वाले मान के समान सेट करने के लिए अधिकांश 64 बिट सिस्टम पर मानक अभ्यास लगता है, लेकिन यह एक आवश्यकता के बजाय सम्मेलन द्वारा होता है।
से man 5 proc
:
/proc/sys/kernel/pid_max This file (new in Linux 2.5) specifies the value at which PIDs wrap around (i.e., the value in this file is one greater than the maximum PID). The default value for this file, 32768, results in the same range of PIDs as on earlier kernels. On 32-bit platfroms, 32768 is the maximum value for pid_max. On 64-bit systems, pid_max can be set to any value up to 2^22 (PID_MAX_LIMIT, approximately 4 million).
और नहीं, आप एक चल रही प्रक्रिया के पीआईडी को नहीं बदल सकते। यह प्रक्रिया शुरू होने के समय कर्नेल द्वारा अनुक्रमिक संख्या के रूप में निर्दिष्ट किया जाता है और यह उस समय से पहचानकर्ता है। केवल एक चीज जो आप एक नया प्राप्त करने के लिए कर सकते हैं, वह है आपका कोड एक नई प्रक्रिया को लेना और पुराने को समाप्त करना।
अन्य उत्तरों की व्याख्या की है
/proc/sys/kernel/pid_max
लिनक्स के लिए औरलेकिन सवाल एक ऑपरेटिंग सिस्टम को निर्दिष्ट नहीं करता था। तो यहाँ कुछ अन्य हैं:
pidmax
है /etc/system
- जिसमें 30,000 तक की चूक है और जिसे 266 और 999,999 के बीच कहीं भी सेट किया जा सकता है। ध्यान दें कि यह नहीं है max_nprocs
, जो एक उप-भिन्न फ़ंक्शन के साथ कर्नेल ट्यून करने योग्य पैरामीटर है।process_id_min
और process_id_max
स्वीकार्य प्रक्रिया आईडी की सीमा निर्धारित करता है।FreeBSD पर PID का मान intro(2)
(लिंक) के अनुसार 0 और 99999 के बीच है । यहाँ मैनुअल से एक उद्धरण है:
प्रक्रिया आईडी।
सिस्टम में प्रत्येक सक्रिय प्रक्रिया विशिष्ट रूप से एक गैर-नकारात्मक पूर्णांक द्वारा पहचानी जाती है जिसे प्रक्रिया आईडी कहा जाता है। इस आईडी की रेंज 0 से 99999 तक है।
यदि आप स्वयं स्रोत कोड पढ़ना चाहते हैं तो (लिंक)PID_MAX
में परिभाषित किया गया है ।sys/sys/proc.h