美文网首页
node.js略知一二之child_process

node.js略知一二之child_process

作者: 太上云初 | 来源:发表于2018-12-21 11:29 被阅读0次
  • 子进程与父进程分离


正常情况下,父进程结束后,子进程都会被终结。如果我们想要子进程和父进程进行分离,可以使用spawn分离父子进程,可以使子进程在父进程结束后继续运行。

步骤
  1. 通过 detached:true 使子进程脱离父进程。
  2. 将子进程与父进程的IO分离,需要配置 stdio
  3. 移除父进程对子进程的引用,使用 child_process.unref()
注解
  • 步骤二:分离父子进程IO的操作,只需要通过文件描述符将子进程的IO指向别的地方或者直接使用ignore放弃IO。
  • 步骤三:即使我们使子进程脱离了父进程,分离了父子进程的IO,但是只要子进程没有终结,父进程任会对子进程有一个内部引用。
实现
const childProcess = require('child_process');
const fs = require('fs');

const FD = fs.openSync('./text.txt', 'w+');//获取一个文件描述符
const customFD = childProcess.spawn('cat', ['execFile.js'], {
    detached: true,//子进程是否独立于父进程运行,父进程结束,子进程继续运行。
    stdio:['ignore', FD, FD]//分离父子IO
});
customFD.unref();
知识扩展
  • 文件描述符

    文件描述是一个非负整数,打开现存或者新建文件时,内核就会返回一个文件描述符。这个文件描述符是一个索引值,指向该进程打开文件的记录表

相关文章

网友评论

      本文标题:node.js略知一二之child_process

      本文链接:https://www.haomeiwen.com/subject/wslmkqtx.html