डेमन (कंप्यूटिंग)

कंप्यूटर मल्टीटास्किंग कंप्यूटर ऑपरेटिंग सिस्टम में, एक डेमन ( या ) एक कंप्यूटर प्रोग्राम है जो एक इंटरैक्टिव उपयोगकर्ता के सीधे नियंत्रण में होने के बजाय पृष्ठभूमि प्रक्रिया के रूप में चलता है। परंपरागत रूप से, एक डेमन के प्रक्रिया नाम अक्षर डी के साथ समाप्त होते हैं, स्पष्टीकरण के लिए कि प्रक्रिया वास्तव में एक डेमन है, और एक डेमन और एक सामान्य कंप्यूटर प्रोग्राम के बीच अंतर करने के लिए। उदाहरण के लिए, syslogd एक डेमन है जो सिस्टम लॉगिंग सुविधा को लागू करता है, और sshd एक डेमॉन है जो इनकमिंग सुरक्षित खोल  कनेक्शन को सर्व करता है।

एक यूनिक्स वातावरण में, डेमन की मूल प्रक्रिया अक्सर, लेकिन हमेशा नहीं, init प्रक्रिया होती है। एक डेमॉन आमतौर पर या तो एक प्रोसेस कांटा (ऑपरेटिंग सिस्टम)  द्वारा एक चाइल्ड प्रोसेस द्वारा बनाया जाता है और फिर तुरंत बाहर निकल जाता है, इस प्रकार  गर्मी  को चाइल्ड प्रोसेस को अपनाने का कारण बनता है, या इनिट प्रोसेस द्वारा सीधे डेमन को लॉन्च किया जाता है। इसके अलावा, फोर्किंग और एक्साइटिंग द्वारा लॉन्च किए गए एक डेमॉन को आमतौर पर अन्य ऑपरेशन करने चाहिए, जैसे कि किसी भी कंट्रोलिंग ट्टी (यूनिक्स) (टीटी) से प्रक्रिया को अलग करना। इस तरह की प्रक्रियाओं को अक्सर यूनिक्स में डेमन (3) जैसे विभिन्न सुविधा रूटीनों में लागू किया जाता है।

सिस्टम अक्सर बूटिंग के समय डेमॉन शुरू करता है जो नेटवर्क अनुरोध, हार्डवेयर गतिविधि, या अन्य प्रोग्राम को कुछ कार्य करके प्रतिक्रिया देगा। क्रॉन जैसे डेमॉन भी निर्धारित समय पर परिभाषित कार्य कर सकते हैं।

शब्दावली
यह शब्द प्रोजेक्ट मैक | एमआईटी के प्रोजेक्ट मैक के प्रोग्रामर्स द्वारा गढ़ा गया था। 1963 में MIT कंप्यूटर साइंस एंड आर्टिफिशियल इंटेलिजेंस लेबोरेटरी#प्रोजेक्ट MAC पर काम करने वाले फर्नांडो जे. कॉर्बेटो के अनुसार, उनकी टीम डेमन शब्द का उपयोग करने वाली पहली टीम थी, जो मैक्सवेल के दानव से प्रेरित थी, जो भौतिकी और ऊष्मप्रवैगिकी में एक काल्पनिक एजेंट था जिसने छँटाई करने में मदद की अणु, बताते हुए, हमने काल्पनिक रूप से डेमन शब्द का उपयोग उन पृष्ठभूमि प्रक्रियाओं का वर्णन करने के लिए करना शुरू किया जो सिस्टम के काम करने के लिए अथक रूप से काम करती हैं। यूनिक्स सिस्टम ने इस शब्दावली को विरासत में मिला है। मैक्सवेल का दानव पृष्ठभूमि में काम कर रहे एक अलौकिक प्राणी के रूप में एक डेमन (पौराणिक कथा) की ग्रीक पौराणिक कथाओं की व्याख्या के अनुरूप है।

सामान्य अर्थ में, ग्रीक भाषा δαίμων से डेमन शब्द दानव का एक पुराना रूप है। यूनिक्स सिस्टम एडमिनिस्ट्रेशन हैंडबुक में एवी नेमेथ डेमॉन के बारे में निम्नलिखित बताता है:

पौराणिक प्रतीकवाद का एक और लक्षण वर्णन यह है कि एक दानव एक ऐसी चीज है जो अभी तक दिखाई नहीं देती है और हमेशा मौजूद रहती है और अपनी इच्छा से काम करती है। थियेज में, प्लेटो को जिम्मेदार ठहराते हुए, सुकरात ने अपने स्वयं के व्यक्तिगत डेमन का वर्णन एक नैतिक विवेक की आधुनिक अवधारणा की तरह किया: देवताओं के पक्ष ने मुझे एक अद्भुत उपहार दिया है, जिसने मुझे बचपन से कभी नहीं छोड़ा है। यह एक ऐसी आवाज है, जब यह खुद को सुनाती है, जो मैं करने जा रहा हूं उससे मुझे रोकता है और मुझे कभी भी आग्रह नहीं करता है।

आधुनिक उपयोग में, डेमन शब्द का उच्चारण किया जाता है. कंप्यूटर सॉफ्टवेयर के संदर्भ में, मूल उच्चारण की ओर चला गया है   कुछ वक्ताओं के लिए।

डेमॉन के लिए वैकल्पिक शब्द विंडोज़ सेवा (विंडोज में उपयोग किया जाता है, विंडोज एनटी के बाद से, और बाद में लिनक्स में भी), स्टार्टेड टास्क (आईबीएम जेड/ओएस), और घोस्ट जॉब (एक्सडीएस यूनिवर्सल टाइम-शेयरिंग सिस्टम)।

कंप्यूटर उपयोग के लिए शब्द को अपनाने के बाद, इसे डिस्क और निष्पादन मॉनिटर के लिए एक संक्षिप्त नाम के रूप में युक्तिसंगत बनाया गया था। कंप्यूटर नेटवर्क से जुड़ने वाले डेमॉन नेटवर्क सेवाओं के उदाहरण हैं।

यूनिक्स जैसी प्रणाली
कड़ाई से तकनीकी अर्थ में, एक यूनिक्स जैसी प्रणाली प्रक्रिया एक डेमॉन है जब इसकी मूल प्रक्रिया समाप्त हो जाती है और डेमन को इसकी मूल प्रक्रिया के रूप में इनिट प्रक्रिया (प्रक्रिया संख्या 1) सौंपी जाती है और इसका कोई नियंत्रण टर्मिनल नहीं होता है। हालाँकि, अधिक सामान्यतः, एक डेमन कोई भी पृष्ठभूमि प्रक्रिया हो सकती है, चाहे वह init प्रक्रिया का बच्चा हो या नहीं।

एक यूनिक्स-जैसी प्रणाली पर, एक प्रक्रिया के लिए डेमॉन बनने की सामान्य विधि, जब प्रक्रिया को कमांड लाइन से या स्टार्टअप स्क्रिप्ट से शुरू किया जाता है जैसे कि एक इनिट स्क्रिप्ट या सिस्टमस्टार्टर स्क्रिप्ट में शामिल है:
 * वैकल्पिक रूप से पर्यावरण से अनावश्यक चरों को हटाना।
 * कांटा (सिस्टम कॉल) और एग्जिट (सिस्टम कॉल) (फोर्क के पैरेंट हाफ में) द्वारा पृष्ठभूमि (कंप्यूटर सॉफ्टवेयर) के रूप में निष्पादित करना। यह डेमॉन के जनक (शेल या स्टार्टअप प्रक्रिया) को बाहर निकलने की सूचना प्राप्त करने और इसके सामान्य निष्पादन को जारी रखने की अनुमति देता है।
 * आह्वान सत्र से अलग होना, आमतौर पर एक ही ऑपरेशन द्वारा पूरा किया जाता है, :
 * नियंत्रित ट्टी (यूनिक्स) से अलग करना।
 * एक नया सत्र बनाना और उस सत्र का सत्र नेता बनना।
 * एक प्रक्रिया समूह नेता बनना।
 * यदि डेमन यह सुनिश्चित करना चाहता है कि यह दुर्घटना से भी एक नया नियंत्रण ट्टी प्राप्त नहीं करेगा (जो तब होता है जब बिना नियंत्रण ट्टी के एक सत्र नेता एक मुक्त ट्टी खोलता है), यह फिर से कांटा और बाहर निकल सकता है। इसका मतलब है कि यह अब नए सत्र में एक सत्र नेता नहीं है, और एक नियंत्रक ट्टी हासिल नहीं कर सकता है।
 * मूल निर्देशिका सेट करना (/) वर्तमान कार्यशील निर्देशिका के रूप में ताकि प्रक्रिया किसी भी निर्देशिका को उपयोग में न रखे जो माउंट (कंप्यूटिंग) फ़ाइल सिस्टम पर हो सकती है (इसे अनमाउंट करने की अनुमति)।
 * अनुमति देने के लिए उमास्क को 0 में बदलना,  , और अन्य ऑपरेटिंग सिस्टम अपने स्वयं के अनुमति मास्क प्रदान करने के लिए कॉल करते हैं और कॉल करने वाले के उमास्क पर निर्भर नहीं होते हैं।
 * फाइल डिस्क्रिप्टर 0, 1 और 2 को मानक स्ट्रीम (stdin, stdout और stderr) के लिए पुनर्निर्देशित करना /dev/null या एक कंप्यूटर डेटा लॉगिंग, और मूल प्रक्रिया से विरासत में मिली अन्य सभी फाइल डिस्क्रिप्टर को बंद करना।

यदि प्रक्रिया सुपर सर्वर  डेमन द्वारा शुरू की जाती है, जैसे कि inetd, launchd, या systemd, सुपर-सर्वर डेमॉन प्रक्रिया के लिए उन कार्यों को करेगा,  पुरानी शैली के डेमॉन को छोड़कर जिन्हें रन अंडर में परिवर्तित नहीं किया गया है systemd और के रूप में निर्दिष्ट  और बहु-थ्रेडेड डेटाग्राम सर्वर के अंतर्गत inetd.

एमएस-डॉस
DOS वातावरण में, डेमॉन-जैसे प्रोग्राम टर्मिनेट-एंड-स्टे-रेजिडेंट प्रोग्राम (TSR) के रूप में लागू किए गए थे।

विंडोज एनटी
माइक्रोसॉफ्ट विंडोज एनटी सिस्टम पर, विंडोज सर्विसेज नामक प्रोग्राम डेमॉन के कार्य करते हैं। वे प्रक्रियाओं के रूप में चलते हैं, आमतौर पर मॉनिटर, कीबोर्ड और माउस के साथ इंटरैक्ट नहीं करते हैं, और बूट समय पर ऑपरेटिंग सिस्टम द्वारा लॉन्च किए जा सकते हैं। विंडोज 2000 और बाद के संस्करणों में, विंडोज सेवाओं को कॉन्फ़िगर किया गया है और मैन्युअल रूप से नियंत्रण कक्ष (विंडोज़), एक समर्पित नियंत्रण / कॉन्फ़िगरेशन प्रोग्राम,  सेवा नियंत्रण प्रबंधक  के सर्विस कंट्रोलर घटक का उपयोग करके शुरू और बंद कर दिया गया है (sc कमांड), द net start और net stop आदेश या PowerShell स्क्रिप्टिंग सिस्टम।

हालाँकि, कोई भी विंडोज़ एप्लिकेशन केवल एक सेवा नहीं, बल्कि एक डेमॉन की भूमिका निभा सकता है, और कुछ विंडोज़ डेमॉन के पास सामान्य प्रक्रिया के रूप में चलने का विकल्प होता है।

क्लासिक मैक ओएस और macOS
क्लासिक मैक ओएस पर, ऑपरेटिंग सिस्टम को पैच करने वाले स्टार्टअप समय पर लोड की गई फ़ाइलों द्वारा वैकल्पिक सुविधाएँ और सेवाएँ प्रदान की गईं; इन्हें एक्सटेंशन (मैक ओएस) और नियंत्रण कक्ष (मैक ओएस)  के रूप में जाना जाता था। क्लासिक मैक ओएस के बाद के संस्करणों ने इन्हें पूरी तरह से विकसित एक्सटेंशन (मैक ओएस) # फेसलेस पृष्ठभूमि अनुप्रयोगों के साथ संवर्धित किया: पृष्ठभूमि में चलने वाले नियमित अनुप्रयोग। उपयोगकर्ता के लिए, इन्हें अभी भी नियमित सिस्टम एक्सटेंशन के रूप में वर्णित किया गया था।

macOS, जो एक यूनिक्स सिस्टम है, डेमॉन का उपयोग करता है, लेकिन सेवा शब्द का उपयोग सॉफ्टवेयर को नामित करने के लिए करता है, जो सेवा मेनू से चुने गए कार्य करता है #macOS, डेमॉन के लिए उस शब्द का उपयोग करने के बजाय, जैसा कि विंडोज करता है।

यह भी देखें

 * कंप्यूटर शब्द व्युत्पत्ति की सूची
 * यूनिक्स डेमॉन की सूची
 * सेवा आवरण
 * सॉफ्टवेयर बॉट
 * उपयोक्ता स्थान
 * वेब सेवा
 * विंडोज़ सेवा

बाहरी संबंध

 * Linux Daemon Writing HOWTO
 * Linux Daemon Writing HOWTO