pm2
pm2是一个进程管理工具,可以用它来管理node进程,并查看node进程的状态,当然也支持性能监控,进程守护,负载均衡等功能,在前端和nodejs的世界中用的很多。 pm2是基于npm进行安装的,在安装pm2之前要先安装npm
执行如下命令安装
npm install -g pm2
安装完毕后查看版本
pm2 -v
更新PM2非常快(少于几秒)并且无缝。
首先确保您正确保存了所有进程:
sudo pm2 save
然后从NPM安装最新的PM2版本:
sudo npm install pm2 -g
最后更新内存中的PM2进程:
sudo pm2 update
注意:使用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
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
进入到项目的根目录下,即实际程序所在目录,执行如下命令
pm2 start --name [应用程序名] [可执行命令] #示例如下 pm2 start --name Fu ./Fu
启动后即可查看到如下信息
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
pm2 startup pm2 save
Windows 下随机启动
可查阅 pm2-windows-startup。
npm install pm2-windows-startup -g pm2-startup install pm2 save
本文作者:SnailBoy
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!