广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >NodeJS如何获取程序退出码
  • 594
分享到

NodeJS如何获取程序退出码

2024-04-02 19:04:59 594人浏览 薄情痞子
摘要

这篇文章主要介绍nodejs如何获取程序退出码,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!想要退出正在运行的 nodejs 程序,我们既可以通过 Ctrl + C  的

这篇文章主要介绍nodejs如何获取程序退出码,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

想要退出正在运行的 nodejs 程序,我们既可以通过 Ctrl + C  的方式,也可以通过 process.exit()来执行退出。

这两种操作都将强制进程尽快退出,即使仍有未完全完成的异步操作挂起,包括对 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 状态代码退出。 在其他情况下使用以下状态代码:

  • 1 未捕获的致命异常:存在未捕获的异常,并且其没有被域或 'uncaughtException' 事件句柄处理。

  • 2: 未使用(由 Bash 保留用于内置误用)

  • 3 内部 JavaScript 解析错误:NodeJS 引导过程中的内部 javascript 源代码导致解析错误。 这是极其罕见的,通常只能在 NodeJS 本身的开发过程中发生。

  • 4 内部 JavaScript 评估失败:NodeJS 引导过程中的内部 JavaScript 源代码在评估时未能返回函数值。 这是极其罕见的,通常只能在 NodeJS 本身的开发过程中发生。

  • 5 致命错误:V8 中存在不可恢复的致命错误。 通常将打印带有前缀 FATAL ERROR 的消息到标准错误。

  • 6 非函数的内部异常句柄:存在未捕获的异常,但内部致命异常句柄不知何故设置为非函数,无法调用。

  • 7 内部异常句柄运行时失败:存在未捕获的异常,并且内部致命异常句柄函数本身在尝试处理时抛出错误。 例如,如果 'uncaughtException'domain.on('error') 句柄抛出错误,就会发生这种情况。

  • 8: 未使用。 在以前版本的 NodeJS 中,退出码 8 有时表示未捕获的异常。

  • 9 无效参数:指定了未知选项,或者提供了需要值的选项而没有值。

  • 10 内部 JavaScript 运行时失败:NodeJS 引导过程中的内部 JavaScript 源代码在调用引导函数时抛出错误。 这是极其罕见的,通常只能在 NodeJS 本身的开发过程中发生。

  • 12 无效的调试参数:设置了 --inspect 和/或 --inspect-brk 选项,但选择的端口号无效或不可用。

  • 13 未完成的顶层等待:在顶层代码中的函数外使用了 await,但传入的 Promise 从未解决。

  • >128 信号退出:如果 NodeJS 收到致命的信号,例如 SIGKILLSIGHUP,则其退出码将是 128 加上信号代码的值。 这是标准的 POSIX 实践,因为退出码被定义为 7 位整数,并且信号退出设置高位,然后包含信号代码的值。 例如,信号 SIGABRT 的值是 6,因此预期的退出码将是 128 + 6134

以上是“NodeJS如何获取程序退出码”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网VUE频道!

--结束END--

本文标题: NodeJS如何获取程序退出码

本文链接: https://www.lsjlt.com/news/81960.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • NodeJS如何获取程序退出码
    这篇文章主要介绍NodeJS如何获取程序退出码,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!想要退出正在运行的 NodeJS 程序,我们既可以通过 Ctrl + C  的...
    99+
    2022-10-19
  • git如何退出程序
    Git是一个开源的分布式版本管理系统,用于跟踪文档的修改,并协助多个人在工作中协作。当您使用Git时,有时您需要退出Git程序。在本文中,我们将学习如何退出Git程序。Git是命令行程序,您可以通过终端或命令提示符运行它。在Git中,如果您...
    99+
    2023-10-22
  • nodejs获取微信小程序带参数二维码实现代码
    nodejs获取微信小程序带参数二维码实现代码 由于项目需求,需要获取小程序页面的带有参数的二维码。好,那就看文档搞吧。 之前都是写前端,没有写过后台的东西,这次难得有机会组长让我试一试试用node来写,那...
    99+
    2022-06-04
    参数 代码 程序
  • 如何获取小程序页面小程序码
    获取小程序页面小程序码的方法:用电脑登录微信公众平台,进入小程序管理后台。点击导航栏中的“工具”选项菜单,再选“生成小程序码”功能。填入小程序APPID进行搜索,然后点下一步。填入页面地址后,点确定生成小程序码,保存生成的小程序码图片即可。...
    99+
    2022-10-24
  • ubuntu下如何退出程序
    ubuntu下退出程序的方法:打开命令行窗口,通过以下命令杀掉对应的进程来退出。方法1:$ps -aux 查看所有运行的进程$kill -9 (PID) 杀死进程号为PID的进程方法2:$killall ( your program nam...
    99+
    2022-10-24
  • javascript中如何退出程序
    在JavaScript中退出程序,有多种方法。下面将介绍三种方法,供参考:1.使用return语句在JavaScript中使用return语句可以直接终止程序的运行,并返回相应的结果(如果有的话)。return语句可以在任何函数内使用,当程...
    99+
    2023-05-21
  • python如何在程序退出前执行代码
    这篇文章主要为大家展示了“python如何在程序退出前执行代码”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python如何在程序退出前执行代码”这篇文章吧。在程序退出前执行代码的技巧使用 at...
    99+
    2023-06-27
  • 详细谈谈NodeJS进程是如何退出的
    目录前言主动退出 Exceptions, Rejections 和 Emitted Errors 信号 小结 前言 有几种因素可以导致 NodeJS 进程退出。在这些因素中,有些是可...
    99+
    2022-11-12
  • windows如何强制退出程序
    在Windows系统中,你可以通过以下几种方法来强制退出程序:1. 使用任务管理器:按下Ctrl + Shift + Esc键组合打...
    99+
    2023-09-11
    windows
  • 小程序验证码倒计时如何获取
    本篇内容介绍了“小程序验证码倒计时如何获取”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!.wxml <button ...
    99+
    2023-06-26
  • qt程序异常退出如何处理
    在处理Qt程序异常退出时,可以使用以下方法:1. 异常处理:使用try-catch语句块来捕获和处理可能引发异常的代码。在catch...
    99+
    2023-08-18
    qt
  • 【看表情包学Linux】进程等待 | wait/waitpid 的 status 参数 | 获取退出码与退出信号 | 初识核心转储
      🤣 爆笑教程 👉 《看表情包学Linux》👈 猛戳订阅  🔥 💭 写在前面:在上一章中我们讲解了进程创建与进程终止,本章我们开始讲解进程等待。进程等待这部...
    99+
    2023-08-31
    linux 服务器 运维 进程等待
  • python如何在程序退出之前执行代码的提示
    小编给大家分享一下python如何在程序退出之前执行代码的提示,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在程序退出之前执行代码的提示使用内置模块atexit,...
    99+
    2023-06-27
  • 【教程】百度网盘小程序如何获取真实的链接和提取码
    转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] 目录 前景提要 获取链接 获取提取码 前景提要         微信收到一个百度网盘的二维码或者小程序,微信上点开根本找不到可以下载的地方,打开百度网盘app呢又不...
    99+
    2023-09-03
    小程序 微信小程序 百度
  • java如何获取当前程序路径
    Java中可以使用以下方法来获取当前程序的路径:1. 使用`System.getProperty("user.dir&qu...
    99+
    2023-09-27
    java
  • 小程序如何获取图片宽高
    这篇文章给大家分享的是有关小程序如何获取图片宽高的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。  小程序如果不能获取图片宽高,那么图片设置宽高时,就有可能会出现图片变形,要想避免这种情况,除了图片等比例缩放,还可...
    99+
    2023-06-26
  • 小程序如何获取页面元素
    在微信小程序中使用wx.createSelectorQuery()方法获取页面元素的样式,实现代码如下:wx.createSelectorQuery().select('元素id').boundingClientRect(function ...
    99+
    2022-10-20
  • 小程序如何获取页面高度
    小程序获取页面高度的代码示例:onReady: function () {//动态获取高度this.autoHeight();},//动态获取高度autoHeight:function(){var t...
    99+
    2022-10-18
  • 小程序如何获取用户信息
    这篇文章主要为大家展示了小程序如何获取用户信息,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“小程序如何获取用户信息”这篇文章吧。获取用户信息,withCredentials 为 true 时需要先...
    99+
    2023-06-26
  • 酒店小程序如何获取流量
    这篇文章主要为大家展示了“酒店小程序如何获取流量”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“酒店小程序如何获取流量”这篇文章吧。在众多的小程序里,微信小程序无疑是酒店商家们建立小程序的第一选择...
    99+
    2023-06-27
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作