本地开发时,可以直接敲node example.js或者运行在package.json文件中定义的命令(比较常见的有npm run dev, npm run start…)。但是线上生产环境是不可以直接这样子跑程序的,因为一旦程序出错,这个服务就挂了。为了让线上生产环境里的项目能用长期处于可用状态,我们可以使用PM2这个包。
官方对P(process)M(manager)2的介绍:
PM2 is a production process manager for Node.js applications with a built-in load balancer. It allows you to keep applications alive forever, to reload them without downtime and to facilitate common system admin tasks.
具体用法(比如我个人一个用node写的博客项目,其程序入口文件是./bin/www),那么我要执行的步骤如下:
一、全局安装pm2
npm i pm2 -g
二、用pm2启动node项目
pm2 start ./bin/www
至此,简单的nodejs项目生产环境部署就完成了。
三、pm2的使用
pm2 start app.js // 后台运行pm2
pm2 list // 显示所有进程状态
pm2 monit AppName/ID // 监视所有进程 内存信息 全局日志
pm2 logs AppName/ID // 显示所有进程日志
pm2 stop all // 停止所有进程
pm2 restart all // 重启所有进程
pm2 restart AppName/ID // 重启某个进程
pm2 stop AppName/ID // 停止指定的进程
pm2 restart AppName/ID // 重启指定的进程
pm2 delete AppName/ID // 杀死指定的进程
pm2 delete all // 杀死全部进程
pm2 info AppName/ID // 当前服务的信息