[英]How to start a nodejs child process in separate cmd window or terminal
我想在單獨的控制台窗口中啟動一個 nodejs 子進程,而不是監聽它的數據事件。
根據文檔
使用分離選項,孩子應該有自己的控制台窗口,但它沒有發生。
我在 main.js 中的代碼
const { spawn} = require("child_process");
var child = spawn("node", ["./count.js"], {
detached: true,
stdio: 'ignore'
});
在 count.js 文件中,我有
console.log(`running in child process with PID ${process.pid})
我發現在 Windows 10 上工作的唯一解決方案是完全生成一個單獨的 cmd.exe 進程:
const { spawn} = require("child_process");
var child = spawn("cmd.exe", ["/c", "node", "count.js"], {
detached: true,
stdio: 'ignore'
});
還要確保為您的子進程添加一些延遲,這樣它就不會在您看到它之前退出:
console.log(`running in child process with PID ${process.pid}`);
// wait 5 seconds before closing
setTimeout(() => true, 5000);
最后,如果您希望您的子窗口完全獨立於父窗口(即使父窗口關閉也保持打開狀態),您應該在生成它后取消引用它:
child.unref();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.