node 程序的部署神器 pm2 的基本使用
发布于 作者:苏南大叔 来源:程序如此灵动~春风吹战鼓擂,又到了苏南大叔和大家分享编程经验的时刻了。本篇文章里面,苏南大叔将给大家简要介绍一下pm2
的安装和使用方法。pm2
是从nodejs
衍生出来的服务器进程管理工具,可以做到开机就启动nodejs
。
当然了,有些运维同学是用nohup
来做这件事情的。效果上差不多,不过pm2
这个工具更加高大上一些。以后的文章中,我们可以再探讨nohup
这个命令的使用方法。
前言
pm2
往往和forever
并列在一起进行讨论,但是试用了两者之后,你就会发现,pm2
才是你真正想要的工具,forever
目前做的还远远不够好。
既然我们的主要目的是部署基于nodejs
的网站程序,那么前提当然是安装了node
环境,关于node
环境的安装,苏南大叔以前的文章里面有过提及,比如在centos
下面安装node:
在mac
和win
下面因为安装过于简单,这里就不必详细说明了。
全局安装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
字样。
把pm2
加入开机启动
sudo pm2 startup
一般来说,pm2 startup
即可,会根据当前系统自动识别加入开机启动项的方式。因为不同系统的情况下,开机启动项的加载方式是不一样的。当然,你也可以指定一下当前系统的类型。具体可以参考相关文档。
当然,这里也可以指定startup
的启动用户,例如:
sudo pm2 startup -u sunan
这样指定的话,pm2
的启动身份,就是sunan
,而不是root
了。如果你有需要,可以增加相关参数-u
。
启动任务
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
结语
上述操作完成后,你如果再次重新启动服务器的话,就会发现,你的nodejs
网站已经自动为你启动完成了。是不是好开心的节奏。
- 如果您不想使用
sudo
的字样,可以查看这里:https://newsn.net/say/mac-pm2-sudo.html 。 pm2
的简要介绍,大家可以点击这里查看:https://npm.js.cn/package/pm2 。
到这里,就介绍完pm2
的基本命令使用了。对于一般的部署情况来说,这些就足够了。但是事情往往不会那么一帆风顺的,所以,大家可以继续期待苏南大叔的后续pm2
相关进阶文章。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。