में forking मैं थोड़ा उलझन में हूँ के रूप में कैसे NodeJS में डेमॉन बनाने के लिएNodeJS
मुझे लगता है कि कॉल fork()
कि जहां कॉल एक बच्चे की प्रक्रिया की इजाजत दी में बनाया गया था से निष्पादन आगे बढ़ने से पहले सी में डेमॉन बना लिया है माता-पिता को समाप्त करने के लिए। मैं process.fork()
और process.kill()
का उपयोग करके एक ही प्रभाव को आसानी से प्राप्त नहीं कर सकता।
निम्नलिखित कोड मैं क्या उम्मीद और क्या नहीं करता है टूट जाता है:
var current_pid, cp = require('child_process');
current_pid = process.pid;
cp.fork('');
process.kill(current_pid);
निम्न त्रुटि उत्सर्जित होता है और मैं बाहर काम नहीं कर सकता क्यों या क्या हो रहा है:
node.js:202
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: read EBADF
at errnoException (net.js:589:11)
at Pipe.onread (net.js:335:20)
समस्या कॉल process.kill()
प्रतीत होता है। इसे हटाने, दोनों प्रक्रियाओं को खुशी से चलना जारी है।
मुझे daemon.node से अवगत है, लेकिन यह उस समय बनाया गया था जब child_process.fork()
मौजूद नहीं था (v0.1.33 संस्करण था जब daemon.node लिखा गया था)। अब कांटा का मूल तरीका है, इसलिए यह अब आवश्यक नहीं होना चाहिए। (साथ ही, यह भी छोड़ दिया गया है प्रतीत होता है।)