【node】利用PM2实现 node服务器 后台运行和自动重启

用 express 成功搭建起了项目骨架,接下来要进行开发了。若是你已经作过了 demo,那么你可能会遇到如下问题:node

  1. npm start启动服务器以后,只能挂在那里,不能退出。若是你想执行其余的命令,须要另外开一个终端窗口;web

  2. 若是你链接的是远程服务器,好比阿里云的 Linux 服务器,当你关闭终端的时候,服务器一样会断开;express

  3. 你在修改代码文件以后,刷新浏览器,发现修改的内容并无生效,你必需手动断开服务器,再启动,修改才会生效。npm

解决这些麻烦,咱们须要服务器至少有两个能力:后台运行自动重启;segmentfault


后台运行,最简单的方法是用 Linux 自带命令nohup,实现进程后台执行:浏览器

nohup bin/www &

执行成功以后,node服务就后台运行了;同时会在当前目录下生成 nohup.out 文件,起到日志的做用服务器

自动重启,以前一直用 nodemon 这个模块,npm 全局安装,执行 nodemon app.js以后,就会监测文件改变自动重启服务器app


若是说要同时实现这两个功能,你可能会想到forever,不错,可是这里咱们要说pm2,你能够把 pm2 当作 forever 的升级版,具体差异自行 Google。 负载均衡

pm2 除了后台运行和自动重启(0秒重启)这些基本功能外,还有进程管理,系统监控,日志处理,负载均衡,还有计划之中的内存泄露监测,web界面,邮件通知等(做为小白的我目前用它基本功能就足够啦哈哈),附上用法:ui

npm install pm2 -g    #全局安装pm2
pm2 start bin/www     #启动服务器
pm2 list              #查看运行状态
pm2 logs              #查看日志
pm2 restart www       #重启应用
pm2 stop www          #中止应用

www是用 pm2 启动进程的名称,执行pm2 list查看,以下图:

clipboard.png

立刻动手试试吧!


本文由 杨成功 原创,更多原创文章请点这里