簡體   English   中英

如何在單獨的 cmd 窗口或終端中啟動 nodejs 子進程

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM