2014-05-18 4 views
6

मेरे पास एक नोडजेएस ऐप है जो विंडोज सेवा के रूप में स्थापित किसी तृतीय पक्ष एप्लिकेशन के साथ संचार करता है। मेरे नोडजेएस एप्लिकेशन को इस सेवा को चलाने की आवश्यकता है, हालांकि कुछ परिस्थितियों में यह नहीं हो सकता है।नोड जेएस विंडोज सेवाओं को शुरू और बंद करें

मैं यह जांचने के लिए एक विधि खोजने की कोशिश कर रहा हूं कि यह विंडोज सेवा चल रही है या नहीं। कई दिनों की खोज के बाद मुझे एक विंडोज सेवा के रूप में एक नोडजेएस एप्लिकेशन चलाने के लिए कई परिणाम मिल गए हैं, लेकिन पहले से ही स्थापित विंडोज सेवाओं को शुरू/बंद करने की क्षमता प्रदान करने वाला कोई भी नहीं।

क्या यह भी संभव है? मुझे PSEXEC जैसे टूल मिल गए हैं, इसलिए मैं नोडजेएस को ऐसी स्क्रिप्ट चला सकता हूं लेकिन अगर यह नोडजेएस इस कार्य को मूल रूप से निष्पादित कर सकता है तो यह बेहतर होगा।

इस अंत तक कोई भी जानकारी बहुत उपयोगी होगी और मुझे यह विश्वास करना मुश्किल लगता है कि अन्य ऐसी स्थिति में नहीं हैं जहां उन्हें ऐसा करने की आवश्यकता है।

स्टीफन

उत्तर

3

खिड़कियों में, एक कमांड लाइन से आप टाइप कर सकते हैं:

# Start a service 
net start <servicename> 

# Stop a service 
net stop <servicename> 

# You can also pause and continue 

तो, सरल जवाब है - बच्चे की प्रक्रिया का उपयोग अपने सर्वर की स्टार्टअप पर सेवा शुरू करने के लिए। कुछ इस तरह:

var child = require('child_process').exec('net start <service>', function (error, stdout, stderr) { 
    if (error !== null) { 
     console.log('exec error: ' + error); 
    } 
    // Validate stdout/stderr to see if service is already running 
    // perhaps. 
}); 

संपादित करें: मैंने यह भी पाया कि यह "windows-service" कहा जाता मॉड्यूल NodeJS। आप जो करने का प्रयास कर रहे हैं उसके लिए वादा करता है। इसकी कुछ कार्यक्षमता सी ++ में लागू की गई है जहां यह विंडोज सेवा प्रबंधक से पूछताछ करने का प्रयास करता है।

+0

बच्चे की प्रक्रिया का उपयोग करके स्पॉट बहुत अच्छा काम किया। – ste2425