解决问题:
1、node项目后台程序发生未知错误,导致崩溃,无法自动重启
2、服务器重启后,程序不会自启动
参考文献:blog.csdn.net/weixin_4675…
1、 全局安装pm2
命令:npm install pm2 -g
如果需要离线安装,请参照以下步骤:
测试环境:联网机为win10,离线服务器为windows server2008
先在联网机win10上安装PM2
命令:npm install pm2 -g
执行命令 `npm config get prefix`可以查看默认的全局安装目录。
在该目录下的node_modules找到刚下载的pm2文件夹,上传到服务器的npm默认全局安装目录。
比如我的默认目录是C:\Users\Administrator\AppData\Roaming\npm,打开默认目录,然后新建文件夹node_modules,把解压的pm2包放进去。
在新建的node_modules文件夹里打开命令行,重新编译pm2的包:
npm build pm2 -g
运行完成之后,通过`pm2 -v`检查是否安装成功
参考文献:https://www.jianshu.com/p/b335008225ee
2、 全局安装pm2 Windows自启包pm2-windows-startup
命令:npm install pm2-windows-startup -g
如需离线安装,将下载好的pm2-windos-startup包上传至服务器,与pm2包在同一个目录下。
3、 安装配置包pm2-startup
命令:pm2-startup install
4、 在项目根目录新建一个文本文档,内容如下:
{
"apps":{
"name":"自己起名", // 项目的别名
"script":"index.js", //需要启动程序的入口文件
"watch":"true", // 开启文件变化监听
"ignore_watch":[ // 忽略文件变化监听文件
"node_modules",
"logs"
],
"error_file":"C:/wamp/www/pm2Logs/error.log", //配置错误日志输出文件地址
"out_file":" C:/wamp/www/pm2Logs/out.log", //配置打印日志输出文件地址
"log_date_format":"YYYY-MM-DD HH:mm:ss", //配置日志日期格式
"instances":2 //配置项目所占用的核数,小于等于服务器的总核数量(cluster模式启动项目,如果用fork模式无需添加此命令)
}
}
注意:上述log存放目录为手动修改,需要手动在对应目录新建pm2Logs文件夹
配置完成后,保存,并将其命名为pm2.config.json的json文件。
5、 启动项目:cmd窗口进入到项目根目录下cd c:/wamp/www/bin,执行启动命令
命令:pm2 start pm2.config.json
6、 保存此项目,开机后才会自动启动
命令:pm2 save
7、 重启服务器,测试能否正常访问应用,可以输入pm2 list查看启动的项目
8、 pm2常用命令:
pm2 start # 启动一个服务,携带 --name 参数添加一个应用名,携带参数 --watch 将观察修改重启服务
pm2 list # 列出当前的服务
pm2 kill # 杀掉pm2管理的所有进程
pm2 monit # 监视每个node进程的CPU和内存的使用情况
pm2 stop 0 # 停止服务
pm2 stop all # 停止所有服务进程
pm2 restart 0 # 重启服务
pm2 restart all # 重启所有进程
pm2 delete 0 # 删除服务
pm2 delete all # 删除全部服务
pm2 logs # 查看所有服务的输出日志
pm2 logs 0 # 查看服务的输出日志