Node.js npm命令运行的进程之间有什么区别:

Node.js npm命令运行的进程之间有什么区别:,node.js,express,npm,npm-run,Node.js,Express,Npm,Npm Run,最近,我使用node.js+express制作了一个简单的API服务器。下面的脚本是我用来运行npm命令的package.json文件的一部分 "scripts": { ... "release": "cross-env NODE_ENV=production MODE=release node server/app.js", } 在我用npm run release启动服务器后,我可以看到我的Linux服务器上运行着多个进程

最近,我使用node.js+express制作了一个简单的API服务器。下面的脚本是我用来运行npm命令的package.json文件的一部分

"scripts": {
  ...
  "release": "cross-env NODE_ENV=production MODE=release node server/app.js",
}
在我用npm run release启动服务器后,我可以看到我的Linux服务器上运行着多个进程,如下面所示

/bin/sh /api/node_modules/.bin/cross-env NODE_ENV=development MODE=test node server/app.js
node /api/node_modules/.bin/../cross-env/bin/cross-env.js NODE_ENV=development MODE=test node server/app.js
node server/app.js
我读了相关的文档,但我不明白在后台到底发生了什么

  • 创建流程的顺序是什么?npm=>/bin/sh=>node/api/。=>节点服务器/app.js
  • 每个过程都做什么?这三个进程都是运行我的服务器所必需的吗
  • 如果我想用pid终止服务器,我应该使用哪个进程id
  • 创建流程的顺序是什么?npm=>/bin/sh=>node/api/。=>节点服务器/app.js

    每个过程都做什么?这三个进程都是运行我的服务器所必需的吗

    那么流程是这样的:

    • NPM是在您的shell中生成的(您运行它),NPM本身运行是为了
    • 您的npm脚本从一个名为“跨操作系统环境变量设置”的包中生成一个进程
    • 该过程依次生成Node.js(在设置环境变量之后)
    这就是为什么你会看到3个过程。在服务器本身运行之后-只需要实际的服务器进程来运行服务器

    如果我想用pid终止服务器,我应该使用哪个进程id

    这一个:
    节点服务器/app.js
    -因为这是您的实际服务器,其他的只是“实用程序进程”(一个用于运行的npm脚本,另一个用于环境变量)


    值得一提的是,通常情况下,服务器在容器或其他具有用于重新启动/终止流程的内置逻辑的编排器/管理器中运行。通常编排器向流程发送SIGTERM