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

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

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

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

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

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

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

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

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

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

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

एक यूनिक्स-जैसी प्रणाली पर, एक प्रक्रिया के लिए डेमॉन बनने की सामान्य विधि, जब प्रक्रिया को कमांड लाइन से या स्टार्टअप स्क्रिप्ट से शुरू किया जाता है जैसे कि एक इनिट स्क्रिप्ट या सिस्टमस्टार्टर स्क्रिप्ट में शामिल है:
 * वैकल्पिक रूप से पर्यावरण से अनावश्यक चरों को हटाना।
 * दिशाखित (सिस्टम कॉल) और एग्जिट (सिस्टम कॉल) (दिशाखित के पैरेंट हाफ में) द्वारा परोक्ष (कंप्यूटर सॉफ्टवेयर) के रूप में निष्पादित करना। यह डेमॉन के जनक (शेल या स्टार्टअप प्रक्रिया) को बाहर निकलने की सूचना प्राप्त करने और इसके सामान्य निष्पादन को जारी रखने की अनुमति देता है।
 * आह्वान सत्र से अलग होना, सामान्यतः एक ही प्रचालन द्वारा पूरा किया जाता है, :
 * नियंत्रित टीटीवाई (यूनिक्स) से अलग करना।
 * एक नया सत्र बनाना और उस सत्र का सत्र नेता बनना।
 * एक प्रक्रिया समूह नेता बनना।
 * यदि डेमन यह सुनिश्चित करना चाहता है कि यह दुर्घटना से भी एक नया नियंत्रण टीटीवाई प्राप्त नहीं करेगा (जो तब होता है जब बिना नियंत्रण टीटीवाई के एक सत्र नेता एक मुक्त टीटीवाई आवरणता है), यह फिर से दिशाखित और बाहर निकल सकता है। इसका मतलब है कि यह अब नए सत्र में एक सत्र नेता नहीं है, और एक नियंत्रक टीटीवाई हासिल नहीं कर सकता है।
 * मूल निर्देशिका सेट करना (/) वर्तमान कार्यशील निर्देशिका के रूप में ताकि प्रक्रिया किसी भी निर्देशिका को उपयोग में न रखे जो माउंट (कंप्यूटिंग) फ़ाइल सिस्टम पर हो सकती है (इसे अनमाउंट करने की अनुमति)।
 * अनुमति देने के लिए उमास्क को 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