मैं अपने उबंटू कंप्यूटर पर चलने वाले डेमोंस के बारे में बहुत सारी बातें सुनता हूं - वे क्या हैं?
मैं अपने उबंटू कंप्यूटर पर चलने वाले डेमोंस के बारे में बहुत सारी बातें सुनता हूं - वे क्या हैं?
जवाबों:
संक्षेप में, एक डेमन एक पृष्ठभूमि प्रक्रिया है ।
डेमन केवल पृष्ठभूमि में चलने वाले सामान्य कार्यक्रम हो सकते हैं, हालांकि अधिकांश एक प्रक्रिया शुरू करने, इसे बनाने और माता-पिता से बाहर निकलने के द्वारा बनाए जाते हैं।
एक प्रक्रिया को कांटा करने का मतलब है इसकी एक सटीक प्रतिलिपि बनाना। उस प्रक्रिया के जनक, यदि वास्तविक माता-पिता तुरंत समाप्त हो जाते हैं, तो अब यह init प्रक्रिया है /sbin/init
, जो हर यूनिक्स जैसे ऑपरेटिंग सिस्टम पर शुरू की गई पहली चीज़ है। अब, प्रक्रिया को एक डेमन कहा जाता है, इसका कोई TTY नहीं है।
यहाँ पायथन में एक डेमन का उदाहरण दिया गया है:
import sys, os, time
pid = os.fork()
# there now exist two processes
if pid > 0: # If this is the parent,
sys.exit(0) # quit.
# this is the background part:
time.sleep(5)
print "Hello, World!"
यह अभी तक एक नहीं है, सख्ती से बोल रहा हूं। आपको वर्तमान कार्य निर्देशिका को भी बदलना होगा, मानक इनपुट और आउटपुट को लॉग-फाइल और इतने पर बदलना होगा। आप इस विकिपीडिया लेख में गोर विवरण पर पढ़ सकते हैं ।
यदि आप उदाहरण चलाते हैं, तो आप देखेंगे, दो सेकंड के बाद यह प्रिंट करता है, भले ही आपने कमांड-लाइन पर शुरू की गई प्रक्रिया को समाप्त कर दिया हो। इस प्रक्रिया की प्रतिलिपि अब 'init' द्वारा चलाई जाती है।
/proc/*/fd
)। एक अच्छी तरह से व्यवहार किए गए डेमन ने स्टडआउट, स्टडर, और स्टडिन को हैंडल देकर पूरी तरह से खुद को टटी से अलग कर लिया।
मल्टीटास्किंग कंप्यूटर ऑपरेटिंग सिस्टम में, एक डेमन एक कंप्यूटर प्रोग्राम है जो एक इंटरैक्टिव यूजर के सीधे नियंत्रण में होने के बजाय एक पृष्ठभूमि प्रक्रिया के रूप में चलता है। परंपरागत रूप से, एक डी के नाम की प्रक्रिया अक्षर d के साथ समाप्त होती है, स्पष्टीकरण के लिए कि प्रक्रिया वास्तव में, एक डेमन है, और एक डेमन और एक सामान्य कंप्यूटर प्रोग्राम के बीच भेदभाव के लिए। उदाहरण के लिए, syslogd डेमॉन है जो सिस्टम लॉगिंग सुविधा को लागू करता है, और sshd एक डेमॉन है जो आने वाले SSH कनेक्शनों की सेवा करता है।
जैसा कि आप डेमन की परत देख सकते हैं