Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 每次使用PM2和child_process.exec而不打开新命令时都会提示_Javascript_Node.js_Pm2 - Fatal编程技术网

Javascript 每次使用PM2和child_process.exec而不打开新命令时都会提示

Javascript 每次使用PM2和child_process.exec而不打开新命令时都会提示,javascript,node.js,pm2,Javascript,Node.js,Pm2,在我的程序中,我想做一些类似于上面函数的事情。我用PM2启动我的程序。但当涉及到这个功能时,PM2每次都会打开一个新的cmd.exe,并在完成后关闭它,这会随着时间的推移而变得烦人 有没有一种方法可以实现上述功能,而无需PM2每次都打开一个新的cmd提示符?或者至少有办法在后台打开这些cmd提示吗 额外资料: 节点版本:15.9.0 PM2版本:4.5.4 操作系统:Windows 10 上面的函数可能运行得太快,因此很难判断PM2是否真的打开了一个新的cmd.exe。如果您要执行等待shel

在我的程序中,我想做一些类似于上面函数的事情。我用PM2启动我的程序。但当涉及到这个功能时,PM2每次都会打开一个新的cmd.exe,并在完成后关闭它,这会随着时间的推移而变得烦人

有没有一种方法可以实现上述功能,而无需PM2每次都打开一个新的cmd提示符?或者至少有办法在后台打开这些cmd提示吗

额外资料:

  • 节点版本:15.9.0
  • PM2版本:4.5.4
  • 操作系统:Windows 10
  • 上面的函数可能运行得太快,因此很难判断PM2是否真的打开了一个新的cmd.exe。如果您要执行
    等待shell(“git pull origin master”)
    或稍长一点的操作,那么您实际上可以看到其打开和关闭new cmd提示
  • 我启动程序执行pm2启动
  • ecosystem.config.js文件如下所示:
module.exports={
“应用程序”:[{
“脚本”:“master.js”,
“节点参数”:[“--inspect=10000”]
}]

};这可能是Windows可执行文件体系结构的结果。与基于unix的操作系统不同,Windows区分控制台应用程序和GUI应用程序,而在unixen(如Linux和MacOS)上,GUI只是应用程序可以使用的API,所有应用程序都是控制台应用程序。有两种解决方案:一种,将脚本作为服务运行,在这种情况下Windows不会弹出cmd.exe。第二个解决方案是在WSL中运行您的脚本(我建议在Ubuntu下运行,以便于在故障排除时使用Googleability)。。。忘了提一下,如果您将脚本作为服务运行,则不需要PM2,因为Windows服务管理器将充当PM2。有一个很好的脚本可以帮助将node.js程序转换为Windows服务。搜索qckwinsvc
async function test() {
    const shell = require("util").promisify(require("child_process").exec);

    const shellResult = await shell("node --version");
    console.log(shellResult);
}
test();