我正在运行此命令:
NODE_ENV=production grunt babel && NODE_ENV=sandbox node dist/bin/copilot.js --mode $1
copilot.js
启动另一个JavaScript文件(取决于上面的模式参数);在这种情况下,它是copilotMonitor.js
简短的故事是这个'Monitor'ping REST API记录,如果需要重新启动模式,则返回数据。 API将按照" mode_3"的行返回copilotMonitor.js
。
然后我如何将此命令pkill -9 -f <mode>
传递回命令行?
我知道process.argv
告诉我我传递给节点应用程序的参数是什么,但是如果有意义的话,我想将 back 传递给节点应用程序。
答案 0 :(得分:0)
答案,节点子进程!
https://nodejs.org/docs/latest-v4.x/api/child_process.html#child_process_child_process_exec_command_options_callback 我还发现此视频很有用:https://www.youtube.com/watch?v=9o8B3L0-d9c
const exec = require('child_process').exec;
exec(`pkill -9 -f ${mode}`, (err, stdout, stderr) => {
if (err) {
console.log(`There was an error killing mode ${mode}`);
console.error('error: ', err);
return;
}
console.log('kill restart! stdout: ', mode, stdout)
console.log('kill restart! stderr: ', mode, stderr)
});