1、linux全局安装pm2
linux安装nodejs后,
全局安装pm2:
npm install -g pm2
提示:
pm2 install gives WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher.
尝试安装最新的npm
npm install uuid@latest -g
还是一样的提示
最后无奈尝试 Linux 离线安装pm2
然后建立pm2到node的软链接:
ln -s /app/pm2/bin/pm2 /opt/node/bin/pm2
此时,
我发现,其实我的node/bin 文件夹中已经有 pm2,虽然提示:
pm2 install gives WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher.
但其实pm2是已经安装成功的,所以,其实是不用该离线安装啦~。
2、找不到pm2命令
但是运行 pm2 -v
报错:找不到pm2命令
使用以下命令将pm2放入系统路径下就可以了:
ln -s /home/soft/elk/node-v8.11.3-linux-x64/bin/pm2 /usr/local/bin/
3、pm2持久化部署以及管理
在项目文件根目录执行以下命令,启动服务,并自命名和监控:
pm2 start ./server/app.js --name="Yapi" --watch
保存到列表:
pm2 save
设置开机自启动:
pm2 startup
网页访问 xx.xxx.xx.xxxx:3000/ 网页加载成功啦~
然而,
关闭服务窗口后,网页就连接失败了~~
4、服务窗口关闭,服务就停止
再次打开服务窗口,执行:
pm2 list
提示:
[PM2][WARN] Current process list running is not in sync with saved list. Type 'pm2 save' to synchronize or enable autosync via 'pm2 set pm2:autodump true'
提示当前运行的进程列表与保存的列表不同步,根据提示执行命令保持同步,输入“pm2 save”以通过“pm2 set pm2:autodump true”进行同步或启用自动同步
所以,先执行:
pm2 set pm2:autodump true
重新启动服务,并自命名和监控:
pm2 start ./server/app.js --name="Yapi" --watch
保存到列表:
pm2 save
设置开机自启动:
pm2 startup
关闭服务窗口后,网页正常加载,达到pm2持久化部署以及管理!
5、pm2 startup生成自启动脚本指令不支持windows的自动启动
补充:
在本地的windows环境下测试时,发现:
pm2 startup生成自启动脚本指令不支持windows的自动启动,
目前比较通用的方案是,使用其他库生成自启动脚本,如:pm2-windows-startup
npm install pm2-windows-startup -g
pm2-startup install