Nodejs pm2 如何启动多个node

Nodejs pm2 如何启动多个node

1.服务器启动就启动pm2 2.启动多个node pm2 /路径/app.js 3.启动后是不是不能关了?那么远程ssh的怎么办?

5 回复

Nodejs pm2 如何启动多个Node实例

1. 服务器启动时自动启动PM2

为了确保PM2在服务器启动时自动运行,可以使用PM2的startup命令生成一个初始化脚本,并将其添加到系统启动脚本中。这样,每次服务器重启时,PM2及其管理的应用程序都会自动启动。

pm2 startup

执行上述命令后,PM2会输出一条命令,你需要将这条命令复制并粘贴到终端执行。这将生成一个初始化脚本,使得PM2能够在系统启动时自动启动。

2. 启动多个Node应用实例

PM2允许你轻松地管理多个Node.js应用程序实例。你可以通过以下几种方式来实现:

方法一:使用start命令

如果你有多个不同的Node.js应用,可以为每个应用单独启动实例。

pm2 start /路径/app1.js --name app1
pm2 start /路径/app2.js --name app2

这里,--name参数用于给应用指定一个易于识别的名字,方便管理和监控。

方法二:使用ecosystem.config.js 文件

对于更复杂的场景,推荐创建一个ecosystem.config.js文件来定义你的应用配置。这使得管理多个应用变得更加简单和高效。

module.exports = {
  apps : [{
    name: "app1",
    script: "/路径/app1.js"
  }, {
    name: "app2",
    script: "/路径/app2.js"
  }]
}

然后使用以下命令启动所有定义的应用:

pm2 start ecosystem.config.js

3. 关闭SSH连接后的持久性

当你通过SSH连接到服务器并启动PM2管理的应用程序后,即使关闭SSH连接,PM2也会继续运行这些应用程序,因为PM2是以守护进程的形式运行的。但是,为了确保PM2服务在服务器重启后仍然可用,建议你设置PM2开机自启动,如上所述。

此外,你可以使用pm2 save命令保存当前的PM2进程状态,以确保在下次服务器重启时,PM2能够恢复之前的状态并重新启动所有应用。

pm2 save

通过以上步骤,你可以轻松地使用PM2来管理多个Node.js应用实例,并确保它们在服务器重启后仍然正常运行。


screen 万能。

启动后可以关啊,也可以delete掉。说明文档里有

你可以自己创建一个apps.json,然后通过pm2 start apps.json来启动apps.json里面定义的apps,该文件就是一个json格式的配置文件,告诉pm2该怎么去启动app,启动哪些app。比如:

[{
  "name"        : "your app name",
  "script"      : "the script to start your app",
  "cwd"         : "change working directory", // 指定该app工作目录,这样pm2会相对这个目录去找脚本之类的。
  "error_file" : "app-err.log",
  "out_file"   : "app-out.log",
  "pid_file"   : "app.pid",
  "one_launch_only"  : "true",
  "env": {
      "NODE_ENV": "production"
  }
}]

这个json是个数组,应该可以用这个json批量启动多个app,只是我还没试过。

要使用 PM2 启动多个 Node.js 应用程序实例,可以采用几种不同的方法。下面是几种常见的方式:

1. 使用 PM2 的 start 命令多次启动不同的应用

如果你有不同的应用程序文件,你可以分别启动它们:

pm2 start /路径/app1.js --name app1
pm2 start /路径/app2.js --name app2

2. 使用 PM2 的 start 命令启动单个应用的多个实例

如果你想在一个节点上运行同一应用的多个实例,你可以这样做:

pm2 start app.js -i max # 启动最大数量的实例以适应你的CPU核心数

或者指定具体的实例数:

pm2 start app.js -i 4 # 启动4个实例

3. 使用PM2配置文件

你可以创建一个JSON配置文件来定义你的应用及其启动参数,然后使用 PM2 从该文件启动应用:

ecosystem.config.js

module.exports = {
  apps : [{
    name: "app1",
    script: "./app1.js"
  }, {
    name: "app2",
    script: "./app2.js"
  }]
};

然后使用:

pm2 start ecosystem.config.js

关于你的问题:

  • 服务器启动就启动pm2: 你可以将上述命令加入到服务器启动脚本中,比如 /etc/rc.local 或者使用 systemd 服务。
  • 启动后是不是不能关了?那么远程SSH的怎么办?: PM2 是一个进程管理工具,它可以确保即使终端关闭,应用也能继续运行。如果你需要通过远程SSH连接关闭应用或查看日志,可以使用 pm2 stop <app-name>pm2 logs <app-name> 命令。

这样,即使你断开了SSH连接,你的应用也会保持运行状态。

回到顶部