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

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

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

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

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

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

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

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

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

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

कंप्यूटर नेटवर्क से जुड़ने वाले डेमन नेटवर्क सेवाओं के उदाहरण हैं।

यूनिक्स जैसी प्रणाली
वस्तुतः तकनीकी अर्थ में, एक यूनिक्स जैसी प्रणाली प्रक्रिया एक डेमन है जब इसकी मूल प्रक्रिया समाप्त हो जाती है और डेमन को इसकी मूल प्रक्रिया के रूप में इनिट प्रक्रिया (प्रक्रिया संख्या 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