美文网首页
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