NodeJs - 检查子进程是不是成功启动

Posted

技术标签:

【中文标题】NodeJs - 检查子进程是不是成功启动【英文标题】:NodeJs - Check if child process started successfullyNodeJs - 检查子进程是否成功启动 【发布时间】:2019-05-13 18:56:47 【问题描述】:

我有一个脚本Start.js,它正在使用shelljs 启动另一个脚本Server.js

Server.js 包含一个应该在process.env.PORT 运行的快速服务器。

Start.js 应该打印出服务器是否正确启动。

const process = shell.exec(`node Server.js`, 
            async: true,
            env: 
                PORT: 3000
            
        ) as ChildProcess;

// how to detect that server was successfully started?

这个脚本如何检测服务器是否启动成功?

【问题讨论】:

【参考方案1】:

您需要在 Server.js 中写入标准输出,并在 exec 回调函数中监听标准输出。

// Shell.js docs
exec('some_long_running_process', function(code, stdout, stderr) 
  console.log('Exit code:', code);
  console.log('Program output:', stdout);
  console.log('Program stderr:', stderr);
);

// Example
exec('node Server.js', function(code, stdout, stderr) 
  console.log('Exit code:', code);
  console.log('Program output:', stdout); // could print: 'server up!'
  console.log('Program stderr:', stderr);
);

【讨论】:

以上是关于NodeJs - 检查子进程是不是成功启动的主要内容,如果未能解决你的问题,请参考以下文章

检查子进程是不是处于活动状态(Windows、C++)

Qt C++ - 如何成功地将数据传递给子进程?

执行 nodejs 脚本作为子进程(不是来自其他脚本)

Nodejs终止产生的子进程

如何从nodejs刷新子进程

Nodejs:将 Ctrl+C 发送到 Windows 上的子进程