पृष्ठभूमि
पिछले साल मैंने एक पोर्टेबल ब्लॉग / वेब-सर्वर सिस्टम संकलित किया, जिसे मैं फ्लैश-ड्राइव से चला सकता हूं। यह बहुत अच्छा है और अद्भुत रूप से काम करता है, खासकर एक्सपी पर। समस्या यह है कि जब यह विंडोज 7 में चलाया जाता है, तो प्रत्येक कंसोल प्रोग्राम दो प्रक्रिया, प्रक्रिया स्वयं, प्लस की एक प्रति पैदा करता है conhost.exe
।
संकट
पोर्टेबल ब्लॉग सिस्टम के मामले में, इसके प्रत्येक सर्वर घटक (MySQL's mysqld.exe
, Apache के दो उदाहरण httpd.exe
, VisualSVN के दो उदाहरण visualsvnserver.exe
और PHP के कई उदाहरण php-cgi.exe
) का एक उदाहरण देता है conhost.exe
। इस समय ( php-cgi.exe
सक्रिय की कोई प्रतिलिपि नहीं होने के साथ , मेरे पास conhost.exe
चलाने के पांच उदाहरण हैं , बिना सीपीयू चक्र के बगल में, लेकिन 22 एमबी मेमोरी का उपभोग करना (80 एमबी के अलावा जो वर्तमान में वास्तविक प्रक्रियाएं उपयोग कर रहे हैं)।
अनुसंधान
के बाद से विंडोज 7 जारी किया गया था (और मैं विस्टा के बाद से संभवतः लगता है), मैं यह पता लगाने की कोशिश की कई मौकों पर है वास्तव में क्या उद्देश्य विभिन्न (नया) मेजबान प्रक्रियाओं (जैसे, conhost.exe
, dllhost.exe
, और taskhost.exe
) करते हैं और क्या वे वास्तव में आवश्यक हैं। मैंने उन्हें मारने की कोशिश की है और पाया है कि कंसोल प्रोग्राम काम करना जारी रखते हैं, दोनों ऐसे प्रोग्राम हैं जो कंसोल विंडो का उपयोग करते हैं, और जो (सर्वर की तरह) नहीं करते हैं।
मैं पहले से ही संपूर्ण csrss.exe
Vista विंडोज विस्टा ⇨conhost.exe
से परिचित हूं और कई बार वही (लगभग शब्दशः) स्पष्टीकरण देख चुका हूं । समस्या यह है कि हर कोई बस उसी स्पष्टीकरण की प्रतिलिपि-पेस्ट करता है जो सहायक नहीं है। सभी यह कहते हैं कि XP- में, उन अनुप्रयोगों को कंसोल करें जहां "द्वारा होस्ट किया गया है" या "रन के तहत" csrss.exe
, लेकिन विंडोज 7 में, उन्हें conhost.exe
सुरक्षा के लिए स्थानांतरित किया गया था । सुरक्षा पहलू समझ में आता है, लेकिन यह इस बारे में कुछ भी नहीं कहता है कि इसे होस्ट करने का क्या मतलब है या क्यों / कब आवश्यक है (या यदि आवश्यक नहीं है तो इसे टालना संभव है)। यहां तक कि रेमंड चेन की चर्चा इस बात पर होती है कि कंसोल ऐप्स को अलग तरह से क्यों होस्ट किया जाता है।
निकटतम चीज़ जो मैं एक विस्तृत, तकनीकी स्पष्टीकरण के लिए पा सकता हूं, वह एक Microsoft ब्लॉग पोस्ट है जो इस विचार को सुदृढ़ करने के लिए लगता है कि यह केवल कंसोल ऐप के GUI और विंडो के बारे में है। इससे मुझे आश्चर्य होता है कि क्या conhost.exe
मैं इन सर्वरों की तरह बिना खिड़की वाले कार्यक्रमों के लिए आवश्यक हूं । यदि कोई खिड़की नहीं है, तो मुझे संसाधनों को बर्बाद करने और अनावश्यक प्रक्रियाओं के साथ प्रक्रिया-स्थान को अव्यवस्थित क्यों करना चाहिए? जब अनावश्यक हो तो Windows इसका पता क्यों नहीं लगा सकता और इससे बचना चाहिए? SecurityMatt की प्रतिक्रिया तकनीकी व्याख्या के संबंध में भी थोड़ी उपयोगी थी, लेकिन फिर से, उस जानकारी के लिए पर्याप्त नहीं है जिसकी मुझे तलाश है।
मैं अकेला नहीं हूं जिसने अनावश्यक घटनाओं को रोकने का तरीका जानने की कोशिश की है conhost
। इस व्यक्ति ने इसे अक्षम करने के बारे में पूछा और बिना किसी प्रयास या विचार के इसे केवल "यह संभव नहीं है" बताया गया। ह्यूग डी और "शायद ही कोई विशेषता" ने इस मुद्दे को इंगित conhost
किया csrss
, कि उनके बच्चे की प्रक्रिया समाप्त होने के बाद संसाधन उपयोग और सुस्त उदाहरणों सहित (कम से कम , केवल एक ही कॉपी चल रही थी)। I Laufer ने सवाल किया कि क्या / जब यह आवश्यक है।
अवलोकन और समाधान के प्रयास
यदि वे वास्तव में हर समय आवश्यक नहीं होते हैं (फिर से, मुझे उन्हें मारने से कोई बुरा प्रभाव नहीं देखा गया है), तो मुझे लगता है कि मैं सर्वर को बैच-फ़ाइलों के साथ सर्वर को प्रतिस्थापित करके समस्या को हल कर सकता हूं (बहुत चिढ़) , रुको, और फिर उस प्रति को मार डालो conhost
जो वे चलाने का कारण बनते हैं। बेशक यह निर्धारित करने का एक त्वरित और आसान तरीका है कि यह कौन सा है। FallenGameR ने पूछा कि conhost.exe
किसी दिए गए PID के कंसोल प्रोग्राम के साथ जुड़े का उदाहरण कैसे प्राप्त करें लेकिन उत्तर नहीं मिला। मुझे लगता है कि मूल प्रक्रिया के PID को पुनः प्राप्त करने के लिए चाल करना चाहिए (नहीं, ProcessExplorer एक विकल्प नहीं है, एक स्वचालित / स्क्रिप्ट योग्य हैसमाधान की आवश्यकता है), लेकिन न केवल बच्चे के पीआईडी प्राप्त करने के लिए किसी प्रकार की रूपरेखा बनाने की आवश्यकता होगी (इसके बजाय इसे केवल चलाने और कार्य के साथ किया जा रहा है), लेकिन इसका मतलब यह भी होगा कि इसे संगत बनाने का एक तरीका है। XP के साथ ही (जैसे, मूल प्रक्रिया की छवि-नाम की जाँच)। यह ब्लॉग पोस्ट एक रास्ता देता है, लेकिन इसके लिए पॉवरशेल की आवश्यकता होती है और यह शायद ही आदर्श है, इसका उल्लेख नहीं करने के लिए कि यह स्क्रिप्ट चलाने के प्रभाव के बारे में कुछ नहीं कहता है।
प्रशन)
शायद Microsoft का आंकड़ा जो कोई भी कमांड-प्रॉम्प्ट का उपयोग नहीं करता है (* खांसी * विंडोज 8 * खांसी *) और इसलिए यह माना जाता है कि यह उन्हें बोझ करने के लिए एक बड़ी बात नहीं है, लेकिन निश्चित रूप से ऐसे परिदृश्य हैं जहां कई कंसोल ऐप चल रहे हैं और हर एक के पास है एक अतिरिक्त, मेमोरी-खपत, पीआईडी-का उपयोग करने वाली प्रक्रिया भयानक है, और इसके चारों ओर काम करने की कोशिश करना, सबसे अच्छा, बहुत ही असुविधाजनक है।
क्या किसी के पास मामले की निश्चित, आधिकारिक जानकारी है? फिर, मैंने पहले ही जेनेरिक स्पष्टीकरण पढ़ा है; मैं सोच रहा हूँ:
- क्यों कंसोल अनुप्रयोगों को (अभी भी) बिल्कुल अलग तरीके से संभाला जाना चाहिए
- क्या विशिष्ट परिस्थितियों में वे की जरूरत है करने के लिए
conhost
- हत्या के क्या परिणाम होते हैं
conhost
- यदि इसे रोकने / अक्षम करने / रोकने का कोई तरीका है या कम से कम एक आसान तरीका है तो जल्दी से इसका सामना करें?
conhost.exe
था कि विंडोज एक PTY के बराबर cmd.exe
था , और वह शेल था।
conshost.exe
अभी भी स्पैनिंग क्यों है ?