pm2同时启动多个前端项目

感谢内容提供者:金牛区吴迪软件开发工作室

前言

在服务器上部署node程序的时候很多时候可能会遇到一种情况,公司只有一台服务器。但是要部署多个前端项目,那么怎么办呢?笔者知道的办法有俩种,一种是写配置文件的方式,另外一种是命令的方式。

第一种办法:写配置文件

配置详情请看官网:https://pm2.keymetrics.io/docs/usage/application-declaration/#generate-configuration

pm2.json文件内容:

{
  "apps": [
    {
      "name": "server",
      "script": "production.js", // 后端启动
      "cwd": "/home/www/supermarket-system", // 目录
      "exec_mode": "fork", // 模式
      "max_memory_restart": "1G", // 最大内存重启
      "autorestart": true, // 自动重启
      "env": {} // 自己去配置一些环境变量
    },
    {
      "name": "front",
      "script": "http-server -c10", // 前端启动
      "cwd": "/home/www/supermarket_management_system/dist", // 目录
      "exec_mode": "fork", // 模式
      "max_memory_restart": "1G", // 最大内存重启
      "autorestart": true, // 自动重启
      "env": { // 自己去配置一些环境变量
        "NODE_ENV": "production"
      }
    }
  ]
}

写好了之后使用命令执行这个文件:

pm2 start pm2.json



第二种办法:更改PM2_HOME环境变量

Multiple PM2 on the same server

The client and daemon communicates via socket files available in $HOME/.pm2/[pub.sock|rpc.sock]

You can start multiple PM2 instances by changing the PM2_HOME environmnent variable.

$ PM2_HOME='.pm2' pm2 start echo.js --name="echo-node-1"
$ PM2_HOME='.pm3' pm2 start echo.js --name="echo-node-2"
This will start two different PM2 instances. To list processes managed by each different instances do:

$ PM2_HOME='.pm2' pm2 list
$ PM2_HOME='.pm3' pm2 list

这种方法就是在环境变量上做区分。

上一篇:图文并茂基于阿里云linux服务器部署nodejs项目并添加pm2守护nodejs项目运行进程(Linux version 4.19.81-17.1.al7.x86_64)


下一篇:pm2自动化部署node项目