pm2+nuxt项目自启动

882 阅读2分钟

公司项目的门户网站是使用nuxt框架开发,做seo方面的东西,同时需要负载均衡自启动项目,来整理一下pm2是如何配置实现自启动的。

附上几个之前看的文档链接,可以先了解了解

windows 下 nodejs线程管理pm2开机自启

使用 pm2 管理应用 以windows服务运行

nuxt打包的过程不在赘述了,把build以后生成的文件.nuxt static nuxt.config.js package.json .env(.env文件是我项目中的环境判断的文件)放到服务器上,然后安装pm2

  1. 在服务器中安装 pm2:npm i pm2 -g

  2. npm install pm2-windows-startup -g 安装windows自启动包

  3. pm2-startup install 执行命令

  4. pm2 start "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" -- run dev(这个地方有个坑)

  5. pm2 save 这一步会生成dump.pm2文件

  6. npm i -g pm2-windows-service (Windows 安装 PM2 服务)

  7. 添加系统环境变量 PM2_HOME=D:.pm2

  8. 以管理员权限打开新的命令行窗口,执行pm2-service-install来安装服务

  9. Perform environment setup ? 选 n, 继续

  10. 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 # 启动 并 生成一个配置文件