2013-01-18 19 views
13

क्या यह जांचने का कोई तरीका है कि सिस्टम पर एक मनमानी पीआईडी ​​चल रहा है या जीवित है, Node.js का उपयोग कर? मान लें कि Node.js स्क्रिप्ट में /proc या Windows समकक्ष पढ़ने के लिए उचित अनुमतियां हैं।कैसे जांचें कि एक मनमानी पीआईडी ​​Node.js का उपयोग कर चल रहा है या नहीं?

यह या तो तुल्यकालिक किया जा सकता है:

if (isAlive(pid)) { //do stuff } 

या असमकालिक:

getProcessStatus(pid, function(status) { 
    if (status === "alive") { //do stuff } 
} 

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

उत्तर

17

मुझे एक परियोजना में चलने वाले पिड की जांच करने की आवश्यकता है। मैं kill -0 <PID> का उपयोग करने का this answer लिया और एक मॉड्यूल कहा जाता है में इसे लपेटा जाता है समय से चल रहेhttps://npmjs.org/package/is-running

npm install is-running

+0

+1 हत्या के लिए बच्चे को जन्म नहीं देता है। हालांकि एक सवाल है, आपको अपने 'index.js' में मॉड्यूल निष्पादन की आवश्यकता क्यों है? पिछले संस्करण से – hexacyanide

+0

निष्पादन शेष है। इसे – Noah

+2

पर जाना चाहिए क्या यह विंडोज पर काम करता है? – Ujeenator

-1

मैं यहां एक विशेषज्ञ नहीं हूं, लेकिन क्या आप कमांड लाइन टूल के साथ स्थिति की जांच करने के लिए बाल प्रक्रिया को जन्म नहीं दे सकते?

12

लगता है जैसे आप process.kill कॉल कर सकते हैं (पीआईडी, 0) और एक कोशिश में यह लपेट/पकड़।

http://nodejs.org/api/process.html#process_process_kill_pid_signal - "लक्ष्य मौजूद नहीं होने पर एक त्रुटि फेंक देगी, और एक विशेष मामले के रूप में, 0 के सिग्नल का उपयोग प्रक्रिया के अस्तित्व के परीक्षण के लिए किया जा सकता है।"

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