Tôi là một chút bối rối như thế nào để tạo daemon trong NodeJSforking trong NodeJS
Tôi đã tạo daemon trong C trước đó gọi fork()
mà tiếp tục thực hiện từ nơi các cuộc gọi được thực hiện trong một quá trình con cho phép cha mẹ để chấm dứt. Tôi không thể dễ dàng đạt được ảnh hưởng tương tự bằng cách sử dụng process.fork()
và process.kill()
.
Các mã sau đây không làm những gì tôi mong đợi và phá vỡ:
var current_pid, cp = require('child_process');
current_pid = process.pid;
cp.fork('');
process.kill(current_pid);
Các lỗi sau đây được phát ra và tôi không thể làm việc ra sao hoặc những gì đang xảy ra:
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)
Vấn đề cuộc gọi có vẻ là process.kill()
. Loại bỏ điều này, cả hai quá trình tiếp tục chạy một cách hạnh phúc.
Tôi biết về daemon.node, nhưng điều này đã được tạo tại thời điểm child_process.fork()
không tồn tại (v0.1.33 là phiên bản có sẵn khi daemon.node được viết). Bây giờ có một cách bản địa để ngã ba, vì vậy điều này sẽ không còn cần thiết nữa. (Ngoài ra, dường như đã bị hủy quá.)