宝塔PM2运行Node脚本

问题

宝塔面板内的 PM2(图形界面)启动以下脚本后端口显示为OFF且服务不断重启直至关闭~

// app.js
const express = require('express')
const app = express()
app.use('/home', (req, res)=>{ res.send('home') })
app.listen(3000, ()=>{ console.log('server is running!') })

解决思路

网上搜索发现貌似是宝塔的 PM2 图形界面问题,使用 SSH 启动服务即可

操作步骤

  1. 确保阿里云ECS安全策略中放行目标端口,宝塔安全设置中允许放行目标端口;
  2. 确保宝塔安装的 PM2 可正常显示 Node 版本,如不能,卸载 PM2 并重装,然后在 PM2 中安装 express,清除 PM2 中现有任务;
  3. 宝塔安装“Linux工具箱”,运行后在「系统密码」中设置 SSH 的账号(默认为root)和密码;
  4. 使用终端运行命令ssh -p 22 root@domain(domain替换为域名或ip),然后输入密码登入SSH;
  5. 使用cd命令进入目标脚本目录,执行npm i express --save安装express,
    然后运行命令node app.js,确认能正常运行后按Ctrl+C停止应用;
  6. 回到宝塔的 PM2 界面,添加脚本所在目录及启动的JS文件和任务名,点击启动,可以看到端口已经不再显示为OFF且正常运行不重启,如果不行,在SSH执行pm2 kill清空一下原有任务后再进行此步骤;