我想从子进程中获取进程ID,为此,我正在尝试使用此命令,let unittest_api_backend_process_id = child_process_obj.pid;
但是它无法正常工作,在这里我添加了我的整个代码,有人可以检查下面的代码并帮助我解决这个问题 ?任何帮助将不胜感激
const execSync = require('child_process').exec;
let child_process_obj = execSync('nodemon server.js ', {
cwd: process.env.BACKEND_FOLDER_PATH
});
我相信您需要使用exec而不是execSync,这将返回一个包含PID的child_process对象。
execSync返回stdout,但不会提供PID。另外,execSync直到进程退出后才返回,这在这种情况下可能无法正常工作。
当进程终止时,传递给exec的回调将与输出一起调用。
我已更新为可以正确通过cwd。
const exec = require('child_process').exec;
let child_process_obj = exec('nodemon server.js ', {
cwd: process.env.BACKEND_FOLDER_PATH
}, (error, stdout, stderr) => {
// Callback will be called when process exits..
if (error) {
console.error(`An error occurred: `, error);
} else {
console.log(`stdout:`, stdout);
console.log(`stderr:`, stderr);
}
});
console.log(`Launched child process: PID: ${child_process_obj.pid}`);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句