首页 > 解决方案 > 用户注销服务器后 IIS Node express 项目关闭

问题描述

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

标签: node.jsexpressiispm2npm-scripts

解决方案


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

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

对于您的问题,我能想到的最佳解决方案是在 windows 启动时启动 PM2。但是,除非用户不注销,否则用户注销服务停止仍然是不可避免的。

  1. 创建 ac:\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 监控的应用程序。

推荐阅读