2022-11-23
环境配置
0
请注意,本文编写于 117 天前,最后修改于 116 天前,其中某些信息可能已经过时。

目录

1、安装pm2
2、更新pm2
3、使用pm2启动项目
3、1使用pm2启动项目
3、2 json 配置/启动方式
4、使用pm2启动net6 项目,进行后台守护
4、1 启动项目
4、2监控图
4、3查看应用信息
4、3随机启动

pm2

pm2是一个进程管理工具,可以用它来管理node进程,并查看node进程的状态,当然也支持性能监控,进程守护,负载均衡等功能,在前端和nodejs的世界中用的很多。
pm2是基于npm进行安装的,在安装pm2之前要先安装npm

1、安装pm2

执行如下命令安装

 npm install -g pm2

安装完毕后查看版本

pm2 -v

image.png

2、更新pm2

更新PM2非常快(少于几秒)并且无缝。

首先确保您正确保存了所有进程:

sudo pm2 save

然后从NPM安装最新的PM2版本:

sudo npm install pm2 -g

最后更新内存中的PM2进程:

sudo pm2 update

3、使用pm2启动项目

3、1使用pm2启动项目

注意:使用pm2启动项目时,默认是通过自己项目中的package.json中的配置进行启动的,需要查看项目中的package.json中start的配置。

查看scripts下的start的配置值,根据这个启动路径进行启动。记住这个启动路径

在项目路径下启动项目:

pm2 start ./bin/www         //启动当前项目
#启动进程(需要进入该项目所在目录下)
pm2 start 进程名
  
 #常用入参
  # 指定应用程序名称
  --name <app_name>
 
  # 当文件更改时,重启应用程序
  --watch
 
  # 为应用程序重新加载设置内存阈值
  --max-memory-restart <200MB>
 
  # 指定日志文件
  --log <log_path>
 
  # 向脚本传递额外的参数
  -- arg1 arg2 arg3
 
  # 自动重启之间的延迟
  --restart-delay <delay in ms>
 
  # 在日志前面加上时间前缀
  --time
 
  # 不要自动重启应用程序
  --no-autorestart
 
  # 为强制重启指定cron
  --cron <cron_pattern>
 
  # 附加到应用程序日志
  --no-daemon
 
 
#启动成功后可进行访问,若不能访问检查一下端口的下行规则是否开放
 
#查看进程
pm2 list
#停止、删除进程
pm2 stop/delete 进程名
#查看日志
pm2 logs
#查看监控
pm2 monit

3、2 json 配置/启动方式

pm2 部署也提供了非常简单的 json 配置方式,部署更简单,拓展性更强,不需要每次重复输入命令,如在项目启动项目下添加 pm2.json,并设置文件属性 内容 为 始终复制:

{
  "apps": {
    "name": "唯一标识",
    "script": "dotnet",
    "exec_mode": "fork",
    "error_file": "logs/err.log",
    "out_file": "logs/out.log",
    "merge_logs": true,
    "log_date_format": "YYYY-MM-DD HH:mm:ss",
    "min_uptime": "60s",
    "max_restarts": 30,
    "autorestart": true,
    "restart_delay": "60",
    "args": [
      "PMS.Web.Entry.dll",
      "--urls=http://*:5001"
    ],
    "env": {
      "ASPNETCORE_ENVIRONMENT": "Production"
    }
  }
}

在发布后的文件目录下打开终端执行:

pm2 start pm2.json

4、使用pm2启动net6 项目,进行后台守护

4、1 启动项目

进入到项目的根目录下,即实际程序所在目录,执行如下命令

image.png

pm2 start --name [应用程序名] [可执行命令]
#示例如下
pm2 start --name Fu  ./Fu

启动后即可查看到如下信息
image.png

4、2监控图

image.png

4、3查看应用信息

pm2 info Fu

{22-11-23 15:17}Mac-Pro:~/Desktop/Tool/FastTunnel mac% pm2 info FastTunnelClient
 Describing process with id 0 - name FastTunnelClient
┌───────────────────┬──────────────────────────────────────────────────────┐
│ status            │ online                                               │
│ name              │ FastTunnelClient                                     │
│ namespace         │ default                                              │
│ version           │ N/A                                                  │
│ restarts          │ 0                                                    │
│ uptime            │ 3h                                                   │
│ script path       │ /Users/mac/Desktop/Tool/FastTunnel/FastTunnel.Client │
│ script args       │ N/A                                                  │
│ error log path    │ /Users/mac/.pm2/logs/FastTunnelClient-error.log      │
│ out log path      │ /Users/mac/.pm2/logs/FastTunnelClient-out.log        │
│ pid path          │ /Users/mac/.pm2/pids/FastTunnelClient-0.pid          │
│ interpreter       │ none                                                 │
│ interpreter args  │ N/A                                                  │
│ script id         │ 0                                                    │
│ exec cwd          │ /Users/mac/Desktop/Tool/FastTunnel                   │
│ exec mode         │ fork_mode                                            │
│ node.js version   │ N/A                                                  │
│ node env          │ N/A                                                  │
│ watch & reload    │ ✘                                                    │
│ unstable restarts │ 0                                                    │
│ created at        │ 2022-11-23T03:26:09.202Z                             │
└───────────────────┴──────────────────────────────────────────────────────┘
 Divergent env variables from local env


 Add your own code metrics: http://bit.ly/code-metrics
 Use `pm2 logs FastTunnelClient [--lines 1000]` to display logs
 Use `pm2 env 0` to display environment variables
 Use `pm2 monit` to monitor CPU and Memory usage FastTunnelClient

image.png

4、3随机启动

pm2 startup
pm2 save

Windows 下随机启动

可查阅 pm2-windows-startup。

npm install pm2-windows-startup -g
pm2-startup install
pm2 save

本文作者:SnailBoy

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!