PM2实用指南、详解、实现脚本后台运行示例
前言
上一篇我们部署 Twikoo
之后,发现PM2真的还是比较神奇的,这边来简单的学习了解一下。
安装
1 | npm install -g pm2 |
启动
1 | pm2 start app.js --watch #实时监控app.js的方式启动,当app.js文件有变动时,pm2会自动reload |
启动类似
node xxx.js
的项目1
pm2 start --name xxxsname xxx.js # 将运行的实例命名为 xxxsname
启动类似 npm start 的项目
1
pm2 start --name appname npm -- start # 设置应用名为 appname
启动类似 npm run serve 的项目
1
pm2 start --name servename npm -- run serve # 设置应用名为 servename
--name xxx
或者-n xxx
表示将应用命名为xxx
以配置文件的形式启动
1
pm2 start pm2config.json
查看 PM2 部署的应用
1 | pm2 list # 显示所有进程状态 |
自定义启动文件
1 | { |
apps
: 是一个数组,数组中的每一个对象表示一个运行中的应用,可以配置多个应用,同时启动
exec_interpreter
: 执行环境,node
bash
python
等等
script
: 将要执行的脚本
cwd
: 应用的路径
exec_mode
: 应用程序启动模式,默认是fork
,也可设置cluster_mode
max_memory_restart
: 超过这个指定的值之后将会重启应用 1G
500M
autorestart
: 出现故障之后是否自动重启,默认 true
watch
: 监听文件更改,更改文件之后自动重启
error_file
: error log
错误日志
out_file
: out log
输出日期
pid_file
: 进程文件
min_uptime
: 最短的运行时间,如果少于这个时间就退出了,则会触发 max_restarts
max_restarts
: 最大重启次数
实践
以启动我的 Hexo
以及 Twikoo
为例:
1. 创建一个 start.json
的文件,内容如下:
1 | { |
2. 运行
1 | pm2 start start.json |
成功运行:
更简单的方法
当然,如果不想每次自己手动启动,也可以依次运行单个脚本后,输入以下命令,每次开机自动启动。
1 | pm2 startup |
取消自启动:
1 | pm2 unstartup systemd |
总结
当然,两种方法都是比较好的,这个根据个人需求来选择。一直觉得,最终结果不是最重要的,只要的是在过程中学到的东西。
永远都在学习的路上。
Forever Study~
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Forever Study!
评论