【问题标题】:Node child process with exit code 12退出代码为 12 的节点子进程
【发布时间】:2018-06-10 09:44:13
【问题描述】:

我在我的节点应用程序中使用子进程, 大多数时候一切正常, 但有时我会得到退出代码 12。

这就是我启动过程的方式

        const childProcess = require('child_process');
        const child = childProcess.fork('Path to file');
        child.send({data})

退出处理:

 child.on('exit', (code) => {
 child.kill(); 
 console.log (code)
)}

我得到“12”,

有什么想法吗? 我不知道如何调试子进程

谢谢!

【问题讨论】:

  • 子程序可以将进程的退出代码设置为它想要的任何值。该值没有普遍意义。 (通常值 0 表示“成功”,非零值表示不同类型的失败,但这只是一个约定。程序不必遵循该约定。)要弄清楚在这种情况下值 12 的含义,你'必须阅读此特定子程序的文档,或阅读源代码,或询问开发人员。

标签: node.js


【解决方案1】:

我实际上遇到了同样的问题。我认为退出代码与节点的子进程退出代码有关。在 Node.js 文档中,提到了所有退出代码。这是链接 - https://nodejs.org/api/process.html#process_exit_codes。 提到了使用集群的可能解决方案。 Github问题的链接是this

这里是解决方案。退出代码 12 是由于没有为您的子进程定义调试端口而产生的错误。 您必须在子进程中添加 --inspect 标志才能消除错误。 按照this 链接添加参数。 Here is my code screenshot. 我希望它有所帮助。

愉快的编码。

【讨论】:

  • {execArgv: ['--inspect']} 在 webstorm 中运行良好,谢谢。
【解决方案2】:

只需添加{execArgv: ['--harmony']}

const child_process = require('child_process');

let child = child_process.fork('./child.js', 'first_child', {execArgv: ['--harmony']});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-17
    • 1970-01-01
    • 2020-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多