tom*_*ang 5 javascript process node.js
我想在另一个进程退出后运行一个进程。
例如,如果我正在运行一个节点 JS 文件并点击CTRL+ C,它应该关闭当前文件并从另一个 JS 文件运行另一个进程
类似的东西(伪代码):
process.on('exit', () => {
console.log("exiting")
}).then( //I am conscious it's wrong to put like that
//open another js file and run this process
);
Run Code Online (Sandbox Code Playgroud)
不,这是不可能的,因为是一个代表当前 Node.js 进程的全局对象(在官方文档中process了解更多信息)。当该进程退出时,您的脚本就结束了,因此之后无法执行任何操作。
但是,您可以从调用 Node.js 脚本的位置运行某些内容,因为调用者在脚本退出后可能仍在运行。这可能是 bash 脚本、另一个 Node.js 进程或其他东西。
或者,您可以在下面的代码片段的回调中生成一个新的独立进程(在官方文档中process.on('exit', () => {...})了解更多相关信息):
const spawn = require('child_process').spawn;
process.on('exit', () => {
const child = spawn('node', ['some_other_script.js'], {
detached: true,
stdio: 'ignore'
});
child.unref();
});
Run Code Online (Sandbox Code Playgroud)
严格来说,这不是进程退出“之后”,而是父进程退出之前。不过,我认为这对你的例子没有任何影响。
| 归档时间: |
|
| 查看次数: |
1992 次 |
| 最近记录: |