• nodejs.cn-Node.js-入门教程:如何从 Node.js 程序退出


    ylbtech-nodejs.cn-Node.js-入门教程:如何从 Node.js 程序退出
    1.返回顶部
    1、

    如何从 Node.js 程序退出

    有很多种方法可以终止 Node.js 应用程序。

    当在控制台中运行程序时,可以使用 ctrl-C 将其关闭,但是这里要讨论的是以编程的方式退出。

    process 核心模块提供了一种便利的方法,可以以编程的方式退出 Node.js 程序:process.exit()

    当 Node.js 运行此行代码时,进程会被立即强制终止

    这意味着任何待处理的回调、仍在发送中的任何网络请求、任何文件系统访问、或正在写入 stdout 或 stderr 的进程,所有这些都会被立即非正常地终止

    可以传入一个整数,向操作系统发送退出码

    process.exit(1)

    默认情况下,退出码为 0,表示成功。 不同的退出码具有不同的含义,可以在系统中用于程序与其他程序的通信。

    有关退出码的信息,详见 http://nodejs.cn/api/process.html#process_exit_codes

    也可以设置 process.exitCode 属性:

    process.exitCode = 1

    当程序结束时,Node.js 会返回该退出码。

    当进程完成所有处理后,程序会正常地退出。

    使用 Node.js 启动服务器,例如 HTTP 服务器

    const express = require('express')
    const app = express()
    
    app.get('/', (req, res) => {
      res.send('你好')
    })
    
    app.listen(3000, () => console.log('服务器已就绪'))

    这个程序永远不会结束。 如果调用 process.exit(),则任何当前等待中或运行中的请求都会被中止。 这不太友好。

    在这种情况下,需要向该命令发送 SIGTERM 信号,并使用进程的信号处理程序进行处理:

    注意:process 不需要 "require",它是自动可用的。

    const express = require('express')
    
    const app = express()
    
    app.get('/', (req, res) => {
      res.send('你好')
    })
    
    const server = app.listen(3000, () => console.log('服务器已就绪'))
    
    process.on('SIGTERM', () => {
      server.close(() => {
        console.log('进程已终止')
      })
    })

    什么是信号?信号是一个 POSIX 内部通信系统:发送通知给进程,以告知其发生的事件。

    SIGKILL 是告诉进程要立即终止的信号,理想情况下,其行为类似于 process.exit()

    SIGTERM 是告诉进程要正常终止的信号。它是从进程管理者(如 upstart 或 supervisord)等发出的信号。

    可以从程序内部另一个函数中发送此信号:

    process.kill(process.pid, 'SIGTERM')

    或从另一个正在运行的 Node.js 程序、或从系统中运行的其他任何的应用程序(能知道要终止的进程的 PID)。

    2、
    2.返回顶部
     
    3.返回顶部
     
    4.返回顶部
     
    5.返回顶部
    1、
    2、
     
    6.返回顶部
     
    warn 作者:ylbtech
    出处:http://ylbtech.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    iOS开发>学无止境
    iOS开发>学无止境
    iOS开发>学无止境
    Objective-C学习—UITableView的使用
    iOS开发>学无止境
    iOS开发—AFNetworking的使用
    iOS开发>学无止境
    c#笔记(六)——数组(2)
    c#笔记(六)——数组
    c#笔记(五)——循环结构
  • 原文地址:https://www.cnblogs.com/storebook/p/13526325.html
Copyright © 2020-2023  润新知