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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

यह भी देखें

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

बाहरी संबंध

 * Linux Daemon Writing HOWTO
 * Linux Daemon Writing HOWTO