用户退出服务器后IIS Node express项目宕机

问题描述

我正在使用 iis 部署我的 node express 项目并启动 pm2 start 命令。当用户注销服务器时项目关闭。当用户登录服务器时它会出现。当用户退出服务器时它如何?我该怎么办?

解决方法

我认为这是一种与windows系统逻辑背道而驰的方法。

当用户注销时,Windows 将关闭所有程序,程序无法运行。在很大程度上,用户注销与关闭是一样的。关机将使所有程序无法运行并使设备进入停止工作状态。用户注销是为了让其他用户可以登录。Windows 停止之前的程序,让所有资源为后续登录的用户服务。

对于您的问题,我能想到的最佳解决方案是start PM2 when windows starts。但是,除非用户不退出,否则用户退出服务仍然无法避免。

  1. 创建一个 c:\pm2 目录(该目录可以任意命名, 放在任何地方)
  2. 创建一个名为 PM2_HOME 的系统范围的环境变量,然后 为其分配一个值“c:\pm2”(或您在其中创建的任何目录) 第一步)
  3. 注销并重新登录以使新变量生效。
  4. 在命令提示符下,为所有应用程序运行“pm2 start path/to/app1”等 应该受到监控。
  5. 在同一个命令提示符下,运行“pm2 save”。你现在有一个 c:\pm2 中的快照文件。
  6. 运行“pm2 kill”来停止pm2本身以及被监控的进程, 然后“pm2 resurrect”以确保所需的应用程序由 pm2.
  7. 在 Windows Scheduler 中创建一个任务,将其设置为在系统上触发 启动,然后简单地做一个“pm2 resurrect”。取决于你的路径 设置,您可能需要用完整路径替换“pm2” pm2 可执行文件。除了在系统启动时触发,任务 还应该每 5 分钟触发一次(例如)。这确保了 如果 PM2 死机,它本身将重新启动。换句话说:最大 停机时间为 5 分钟。
  8. 重新启动。 PM2 应在重启后启动,并启动 发出“pm2 save”时被 PM2 监控的应用。