渊澄

川流不息,渊澄取映

PM2守护

serv00安装PM2

1
bash <(curl -s https://raw.githubusercontent.com/k0baya/alist_repl/main/serv00/install-pm2.sh)
1
2
3
pm2 start ./memos -- --mode prod --port 5310 --data ~/domains/memos.ycyc.win/public_html

pm2 start ./alist -- server /usr/home/ycycwin/domains/pan.ycyc.win/alist

Alist和Memos保活命令

1
2
cd /home/ycycwin/domains/pan.ycyc.win/alist && pm2 start ./alist -- server ~/domains/pan.ycyc.win/alist
cd /home/ycycwin/domains/memos.ycyc.win/public_html && pm2 start ./memos -- --mode prod --port 5310 --data ~/domains/memos.ycyc.win/public_html/data

PM2常用命令收藏

启动

1
2
3
4
5
$ pm2 start app.js               # 启动app.js应用程序
$ pm2 start app.js -i 4 # cluster mode 模式启动4个app.js的应用实例 # 4个应用程序会自动进行负载均衡
$ pm2 start app.js --name="api" # 启动应用程序并命名为 "api"
$ pm2 start app.js --watch # 实时监控app.js的方式启动,当app.js文件有变动时,pm2会自动reload
$ pm2 start script.sh # 启动 bash 脚本

注意:

-i --instances:启用多少个实例,可用于负载均衡。如果-i 0或者-i max,则根据当前机器核数确定实例数目。

查看cpu核数参考:Linux查看物理CPU个数、核数、逻辑CPU个数

Copy

1
cat /proc/cpuinfo| grep "cpu cores"| uniq

重启

1
$ pm2 restart all               # 重启所有应用

重载

1
$ pm2 reload all                # 重启 cluster mode下的所有应用

停止

1
2
$ pm2 stop all                  # 停止所有的应用程序
$ pm2 stop 0 # 停止 id为 0的指定应用程序

查看进程

1
2
3
$ pm2 list # 列表 PM2 启动的所有的应用程序
$ pm2 show [app-name或 id] # 显示应用程序的所有信息
$ pm2 info [app-name或 id] # 显示应用程序的所有信息

实时监控

1
2
3
$ pm2 monit          # 显示每个应用程序的CPU和内存占用情况
$ pm2 monit 0 # 监控批评行编号为0的进程
$ pm2 monit server.js # 监控名称为server.js的进程

日志

1
2
3
4
$ pm2 logs                   # 显示所有应用程序的日志
$ pm2 logs [app-name或 id] # 显示指定应用程序的日志
$ pm2 flush #Empty all log file
$ pm2 reloadLogs #Reload all logs

删除

1
2
$ pm2 delete all                # 关闭并删除所有应用
$ pm2 delete 0 # 删除指定应用 id 0

其他

1
2
3
4
5
6
7
8
$ pm2 gracefulReload all        # Graceful reload all apps in cluster mode(优雅地重新加载集群模式中的所有应用程序)
$ pm2 scale api 10 # 把名字叫api的应用扩展到10个实例
$ pm2 reset [app-name] # 重置重启数量
$ pm2 startup # 创建开机自启动命令
$ pm2 save # 保存当前应用列表
$ pm2 resurrect # 重新加载保存的应用列表
$ pm2 update # Save processes, kill PM2 and restore processes
$ pm2 generate # Generate a sample json configuration file

引用

Site Unreachable