我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

春风吹战鼓擂,又到了苏南大叔和大家分享编程经验的时刻了。本篇文章里面,苏南大叔将给大家简要介绍一下pm2的安装和使用方法。pm2是从nodejs衍生出来的服务器进程管理工具,可以做到开机就启动nodejs

苏南大叔:node 程序的部署神器 pm2 的基本使用 - node-pm2
node 程序的部署神器 pm2 的基本使用(图4-1)

当然了,有些运维同学是用nohup来做这件事情的。效果上差不多,不过pm2这个工具更加高大上一些。以后的文章中,我们可以再探讨nohup这个命令的使用方法。

前言

pm2往往和forever并列在一起进行讨论,但是试用了两者之后,你就会发现,pm2才是你真正想要的工具,forever目前做的还远远不够好。

既然我们的主要目的是部署基于nodejs的网站程序,那么前提当然是安装了node环境,关于node环境的安装,苏南大叔以前的文章里面有过提及,比如在centos下面安装node:

macwin下面因为安装过于简单,这里就不必详细说明了。

全局安装pm2

安装好node环境后,苏南大叔需要继续全局安装pm2

npm install pm2 -g

安装完毕后,就可以愉快的使用pm2命令了。

使用pm2命令的时候,为了不报错,最好跟上sudo的字样。但是建议您先阅读一下这篇文章,再决定是否使用sudo。《pm2命令与sudo的爱恨情仇》,https://newsn.net/say/mac-pm2-sudo.html

  • brew则是恰恰相反,带上sudo的字样,才会报错。
  • 当然,sudo指的是mac系统,您如果是win系统,请完全忽视sudo字样。

苏南大叔:node 程序的部署神器 pm2 的基本使用 - 001
node 程序的部署神器 pm2 的基本使用(图4-2)

pm2加入开机启动

sudo pm2 startup

一般来说,pm2 startup即可,会根据当前系统自动识别加入开机启动项的方式。因为不同系统的情况下,开机启动项的加载方式是不一样的。当然,你也可以指定一下当前系统的类型。具体可以参考相关文档。

当然,这里也可以指定startup的启动用户,例如:

sudo pm2 startup -u sunan

这样指定的话,pm2的启动身份,就是sunan,而不是root了。如果你有需要,可以增加相关参数-u

苏南大叔:node 程序的部署神器 pm2 的基本使用 - pm2_strartup_done
node 程序的部署神器 pm2 的基本使用(图4-3)

启动任务

cd到对应目录后,使用pm2 start命令启动对应js,并保存。

pm2 start pm2.json
pm2 start <js文件相对路径>
pm2 start <json的任务描述文件相对路径>
pm2 start server/app.js
pm2 start server/app.json

上面的命令,需要您根据实际情况任选一条。

sudo pm2 save

pm2 start这个命令是重点,整个部署的核心所在,苏南大叔将在下一篇文章中详细再说明一下pm2 start的几种变形,常规上来说,一般跟的是js的文件路径,或者是个json描述文件,甚至是个sh文件。

pm2 save的这个命令,因为实际上会把当前pm2 start的情况写入到配置文件中,所以需要个sudo权限。

查看所有pm2任务及删除pm2任务

pm2 list
sudo pm2 delete <task name>
sudo pm2 save

苏南大叔:node 程序的部署神器 pm2 的基本使用 - pm2_list
node 程序的部署神器 pm2 的基本使用(图4-4)

结语

上述操作完成后,你如果再次重新启动服务器的话,就会发现,你的nodejs网站已经自动为你启动完成了。是不是好开心的节奏。

到这里,就介绍完pm2的基本命令使用了。对于一般的部署情况来说,这些就足够了。但是事情往往不会那么一帆风顺的,所以,大家可以继续期待苏南大叔的后续pm2相关进阶文章。

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   js    node