Node.js 在NodeJS应用程序中管理多个进程

Node.js 在NodeJS应用程序中管理多个进程,node.js,child-process,Node.js,Child Process,假设我想从一个“主”NodeJS应用程序中控制(启动/停止)其他几个NodeJS脚本。但是,不必只使用NodeJS脚本,也可以使用简单的bash脚本 我正在使用execa //简化 const managedprocess=[]; 异步函数启动(pkg){ const runningProcess=await execa(pkg.run_命令{ cwd:pkg.path }); 返回运行过程; } 异步函数停止(pkg){ //以某种方式停止子进程 返回 } const someProcess=

假设我想从一个“主”NodeJS应用程序中控制(启动/停止)其他几个NodeJS脚本。但是,不必只使用NodeJS脚本,也可以使用简单的bash脚本

我正在使用
execa

//简化
const managedprocess=[];
异步函数启动(pkg){
const runningProcess=await execa(pkg.run_命令{
cwd:pkg.path
});
返回运行过程;
}
异步函数停止(pkg){
//以某种方式停止子进程
返回
}
const someProcess=等待启动({
运行_命令:“node app.js”,
路径:'./path/to/my/script/'
});
//保持流程的参考
ManagedProcess.push(someProcess);
我首先认为
pm2
将是一个可行的解决方案,但我想这只适用于NodeJS-only脚本

使用上述方法会遇到什么问题

我应该考虑使用这个想法吗?< No.js子进程> P.>,我强烈建议使用它。对于一般子流程(例如,您提到的bash脚本),您必须使用
child\u流程
(>execa)。然后可通过grpc完成过程之间的通信。你的方法很好,所以你可以考虑使用它。

< P>我决定暂时保留<代码> PM2< /代码>,因为它们有一个很好的-(我刚学到的)你可以指定运行你的脚本。因此,不仅可以使用
node
应用程序,还可以使用
bash
python
php
等应用程序,这正是我想要的。

感谢您提供的详细信息和给我的勇气:)