我有 Windows Server 2016 云托管。我在 IIS 上广播我的网站。
我有 2 个应用程序在 Nodejs 上运行。配置应用程序后我退出 Windows。
我的 IIS 站点继续运行,但当我注销或重新启动 Windows 时,我的 Nodejs 应用程序退出。
我已按照以下步骤解决此问题。
npm install --global pm2@latest
npm i pm2-windows-service -g
npm install pm2-windows-startup -g
pm2 kill
pm2-service-uninstall
pm2-service-install -n pm2Service1
pm2-startup install
c:
cd C:\webSites\myService1
pm2 start app.js
pm2 list
pm2 show 0
确保其有效后。
pm2 save --force
当我执行这些过程并注销窗口时,我可以从外部访问该应用程序。
但是当我重新启动 Windows 时,应用程序无法运行。每次启动时我都必须重复相同的步骤。
当 Windows 重新启动时,“pm2Service1”似乎正在工作。但 pm2 将列表列为空。
我通过使用 NSSM 服务在我的服务器上完成了此操作。安装后,转到 NSSM 文件夹并输入
nssm install PM2
您可以在这里找到完整的教程:
https://lakin-mohapatra.medium.com/register-pm2-as-a-service-in-the-windows-server-747f19e2ff2a
最佳实践 AFAIK 是使用 nssm +“windows 批处理文件”来启动你的 app.js,有关更多详细信息,你可以查看 this 链接。
pm2-windows-service
已弃用。pm2-windows-startup
的经验,但我认为它在注册表中添加了一个条目以在用户登录后启动 pm2,这已经太晚了。
这是我的工作示例。