2015-07-15 8 views
12

विंडोज़ (child_process.spawn) पर नोडजेज़ में एक नए बच्चे को जन्म देने पर यह हमेशा एक खाली कंसोल विंडो खुलता है जो कि बच्चे की प्रक्रिया समाप्त होने तक खुला रहता है।बाल प्रक्रिया कंसोल विंडो छुपाएं

क्या इससे बचने का कोई तरीका है?

यानी हम forever का उपयोग कर पृष्ठभूमि सेवा के रूप में अपना आवेदन चलाने के लिए चाहते हैं। हालांकि, यह बहुत पृष्ठभूमि नहीं है क्योंकि यह रिक्त कंसोल विंडोज़ खोलने और बंद करना जारी रखता है ...

संपादित करें: "शांत" मोड में उप-अनुप्रयोग चलाने का विकल्प एक विकल्प नहीं है क्योंकि प्रक्रियाओं के कुछ हिस्सों को wmic बनाया जा रहा है।

+1

संभावित डुप्लिकेट [वीएलसी के डमी इंटरफेस का उपयोग करते समय कंसोल को प्रदर्शित होने से कैसे रोकें] (http://stackoverflow.com/questions/6001034/how-to-prevent-console-from-being-displayed-when-using -vlcs-dummy-interface) – CodeCaster

+0

डुप्लिकेट और न ही नोड के दस्तावेज़ आपके कोड के माध्यम से ऐसा करने का एक तरीका बताते हैं। शायद आप क्लाइंट एप्लिकेशन को कमांडलाइन पैरामीटर के माध्यम से कॉन्फ़िगर कर सकते हैं कि इसे विंडो नहीं दिखाना चाहिए। यदि आप विंडोज सेवा के रूप में नोड चलाते हैं तो आप विंडोज़ को वैसे भी नहीं देख पाएंगे। – CodeCaster

+0

मैं 'स्पॉन' का उपयोग करता हूं और मुझे विंडोज़ पर एक अलग विंडो नहीं मिलती है। Thjo मेरे पास 'stdout' और' stderr' के लिए श्रोता सेट है। शायद यही कारण है (मुझे यकीन नहीं है) ... लेकिन मुझे लगता है कि यह आपके स्पॉन में आप क्या कह रहे हैं इस पर निर्भर करता है। – Gyandeep

उत्तर

1

इस तरह से हमेशा के लिए ऐप के लिए एक कंसोल पैदा होगा। और कंसोल विंडो के प्रत्येक स्पॉन के लिए खुला नहीं है।

forever -c "cmd /c node" start app.js 
0

RanP के जवाब से जारी रखते हुए,

forever start --uid "foo" -c "cmd /c node" app.js 

आप अपने -c आर्ग से पहले 'स्टार्ट' और --uid की आवश्यकता होगी वैकल्पिक है। ध्यान दें कि -c कमांड में एक कम जगह है, जिससे इसे काम करने की अनुमति मिलती है।

संबंधित मुद्दे