【问题标题】:Node.js - get reference to processes spawned by child_process.spawnNode.js - 获取对 child_process.spawn 产生的进程的引用
【发布时间】:2020-05-30 11:29:07
【问题描述】:

是否有可能在 node.js 中找到对当前进程产生的子进程的引用?我有一些代码使用生成新进程的第三方库。我想找到对这个过程的引用,并将一些事件附加到它并对输出做出反应。

我想做这样的事情。

第三方.js

const cp = require('child_process');

function spawn(executable, args, stdio) {
  cp.spawn(executable, args, stdio);
}

module.exports = spawn

main.js

const spawn = require('thirdparty');

spawn()
const child = findTheProcess()
child.stdout.on('data', data => {
  // do stuff
});


child.on('message', data => {
  // do stuff

});

我的一个想法是重写 cp.spawn,但这听起来很可怕。

【问题讨论】:

    标签: javascript node.js process


    【解决方案1】:

    如果您在thirdpaty.js 返回新创建的进程,您将能够在main.js 中引用它

    修改代码以列出当前目录:

    第三方.js

    const cp = require('child_process');
    
    function spawn(executable, args, stdio) {
      return cp.spawn(executable, args, stdio);
    }
    
    module.exports = spawn
    

    main.js

    const spawn = require("./thirdparty")
    
    const child = spawn("ls")
    
    child.stdout.on("data", (data) => {
      console.log(data.toString())
    })
    
    child.on("message", (data) => {
      console.log(data.toString())
    })
    
    

    【讨论】:

    • 第三方代码的关键是我无法控制它
    猜你喜欢
    • 2015-08-17
    • 2013-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-16
    • 1970-01-01
    • 2014-02-13
    相关资源
    最近更新 更多