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

目录

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 许可协议。转载请注明出处!