• 技术文章 >web前端 >js教程

    浅谈NodeJS获取程序退出码的方法

    青灯夜游青灯夜游2021-09-29 09:39:15转载286
    如何获取 NodeJS 程序退出码?下面本篇文章给大家介绍一下获取 Node.js 程序退出码的方法以及退出码枚举,希望对大家有所帮助!

    想要退出正在运行的 NodeJS 程序,我们既可以通过 Ctrl + C 的方式,也可以通过 process.exit()来执行退出。【推荐学习:《nodejs 教程》】

    这两种操作都将强制进程尽快退出,即使仍有未完全完成的异步操作挂起,包括对 process.stdoutprocess.stderr 的 I/O 操作。

    如果由于错误情况需要终止 Node.js 进程,则抛出未捕获的错误并允许进程相应地终止比调用 process.exit() 更安全,比如:

    import process from 'process';
    
    // 如何正确设置退出码,同时让进程正常退出。
    if (someConditionNotMet()) {
      printUsageToStdout();
      process.exitCode = 1;
    }

    Worker 线程中,该函数停止当前线程而不是当前进程。

    那么对于一些意外退出的 NodeJS 程序,如何来获取 exitCode ?每一个退出码又代表什么?今天我们就来学习一下。

    通过 NodeJS 的 child_process 子进程获取退出码

    child_process.fork() 方法是 child_process.spawn() 的特例,专门用于衍生新的 NodeJS 进程。

    const fork = require("child_process").fork;
    
    console.log("main ", process.argv);
    
    const fs = require("fs");
    
    const fd = fs.openSync("./a.log", "a");
    
    const child = fork("./index.js", {
        stdio: ["ipc", "pipe", fd]
    });
    
    child.on("error", (error) => {
        let info = `child process error ${error}`;
        fs.writeSync(fd, info);
        console.log(info);
    });
    
    child.on("exit", (code) => {
        let info = `child process exited with code ${code}`;
        fs.writeSync(fd, info);
        console.log(info);
    });

    子程序执行参数

    const fork = require('child_process').fork;
    
    console.log('main ',process.argv);
    
    const fs=require('fs');
    
    const fd = fs.openSync('./a.log','a');
    
    // 子程序参数
    let args = [];
    args[0] = 'test';
    
    const child = fork('./index.js',args,{
        stdio:['ipc','pipe',fd]
    });
    
    child.on('error', (error) => {
        let info = `child process error ${error}`;
        fs.writeSync(fd,info);
        console.log(info);
    });
    
    child.on('exit', (code) => {
        let info = `child process exited with code ${code}`;
        fs.writeSync(fd,info);
        console.log(info);
    });

    NodeJS退出码

    当没有更多异步操作挂起时,NodeJS 通常会以 0 状态代码退出。 在其他情况下使用以下状态代码:

    总结

    以上就是获取 NodeJS 程序退出码的方法以及退出码枚举。

    ~本文完,感谢阅读!

    更多编程相关知识,请访问:编程视频!!

    以上就是浅谈NodeJS获取程序退出码的方法的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:掘金社区,如有侵犯,请联系admin@php.cn删除
    专题推荐:NodeJS 程序退出码
    上一篇:浅谈离线安装全局node模块的方法 下一篇:浅析Angular中HttpClientModule模块有什么用?怎么用?
    大前端线上培训班

    相关文章推荐

    • 如何解决nodejs express安装失败问题• nodejs如何添加和查询数据库的数据• Nodejs进阶学习:深入了解异步I/O和事件循环• 手把手教你使用Node.js进行TCP网络通信(实践)• 怎么使用Node.js+DevTools快速调试应用程序?

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网