公司项目的门户网站是使用nuxt框架开发,做seo方面的东西,同时需要负载均衡自启动项目,来整理一下pm2是如何配置实现自启动的。
附上几个之前看的文档链接,可以先了解了解
nuxt打包的过程不在赘述了,把build以后生成的文件.nuxt static nuxt.config.js package.json .env(.env文件是我项目中的环境判断的文件)放到服务器上,然后安装pm2
-
在服务器中安装 pm2:npm i pm2 -g
-
npm install pm2-windows-startup -g 安装windows自启动包
-
pm2-startup install 执行命令
-
pm2 start "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" -- run dev(这个地方有个坑)
-
pm2 save 这一步会生成dump.pm2文件
-
npm i -g pm2-windows-service (Windows 安装 PM2 服务)
-
添加系统环境变量 PM2_HOME=D:.pm2
-
以管理员权限打开新的命令行窗口,执行pm2-service-install来安装服务
-
Perform environment setup ? 选 n, 继续
-
pm2-service-uninstall 卸载服务(这句我没有做,应该卸载不卸载不会有啥影响吧,反正我没执行这一步) 然后在重启服务器就可以看到服务已经自启动了,第六步以后的步骤都是为了把pm2注册为系统服务,实现完前五步重启服务就可以看到项目已经可以自启动了,但是是弹出的cmd窗口启动了,远程服务器都有密码,不解锁是不会自启的,下面记录一些常用的pm2命令,最常用的就是:
pm2 ls # 查看进程列表
pm2 delete all # 杀死全部进程(如果第四部启动命令写的有问题,那个cmd窗口就一直弹 TMD裂开了T.T)
剩下的就是复制粘贴的了 看看就好
$ npm install pm2 -g # 命令行安装 pm2
$ pm2 start app.js -i 4 #后台运行pm2,启动4个app.js
# 也可以把'max' 参数传递给 start
# 正确的进程数目依赖于Cpu的核心数目
$ pm2 start app.js --name my-api # 命名进程
$ pm2 list # 显示所有进程状态
$ pm2 monit # 监视所有进程
$ pm2 logs # 显示所有进程日志
$ pm2 stop all # 停止所有进程
$ pm2 restart all # 重启所有进程
$ pm2 reload all # 0秒停机重载进程 (用于 NETWORKED 进程)
$ pm2 stop 0 # 停止指定的进程
$ pm2 restart 0 # 重启指定的进程
$ pm2 startup # 产生 init 脚本 保持进程活着
$ pm2 web # 运行健壮的 computer API endpoint (http://localhost:9615)
$ pm2 delete 0 # 杀死指定的进程
$ pm2 delete all # 杀死全部进程
$ pm2 start app.js -i max # 根据有效CPU数目启动最大进程数目
$ pm2 start app.js -i 3 # 启动3个进程
$ pm2 start app.js -x #用fork模式启动 app.js 而不是使用 cluster
$ pm2 start app.js -x -- -a 23 # 用fork模式启动 app.js 并且传递参数 (-a 23)
$ pm2 start app.js --name serverone # 启动一个进程并把它命名为 serverone
$ pm2 stop serverone # 停止 serverone 进程
$ pm2 start app.json # 启动进程, 在 app.json里设置选项
$ pm2 start app.js -i max -- -a 23 #在--之后给 app.js 传递参数
$ pm2 start app.js -i max -e err.log -o out.log # 启动 并 生成一个配置文件