node.js - 用户注销服务器后 IIS Node express 项目关闭
问题描述
我正在使用 iis 部署我的 node express 项目并启动 pm2 start 命令。用户注销服务器时项目关闭。当用户登录服务器时它会上升。当用户退出服务器时,它是如何启动的?我应该怎么办?
解决方案
我认为这是一种与windows系统逻辑背道而驰的做法。
当用户注销时,Windows 将关闭所有程序,程序无法运行。在很大程度上,用户注销与关机是一样的。关机将使所有程序无法运行,并使设备进入停止工作状态。用户注销是为了让其他用户登录。Windows停止之前的程序,让所有资源为后续登录的用户服务。
对于您的问题,我能想到的最佳解决方案是在 windows 启动时启动 PM2。但是,除非用户不注销,否则用户注销服务停止仍然是不可避免的。
- 创建 ac:\pm2 目录(该目录可以叫任何东西,可以放在任何地方)
- 创建一个名为 PM2_HOME 的系统范围的环境变量,并为其分配一个值“c:\pm2”(或您在第一步中创建的任何目录)
- 注销并再次登录以使新变量生效。
- 在命令提示符下,对所有应监控的应用程序运行“pm2 start path/to/app1”等。
- 在同一命令提示符下,运行“pm2 save”。您现在在 c:\pm2 中有一个快照文件。
- 运行“pm2 kill”以停止 pm2 本身以及被监控的进程,然后运行“pm2 resurrect”以确保所需的应用程序由 pm2 启动。
- 在 Windows Scheduler 中创建一个任务,将其设置为在系统启动时触发,然后简单地执行“pm2 resurrect”。根据您的路径设置,您可能必须将“pm2”替换为 pm2 可执行文件的完整路径。除了在系统启动时触发之外,该任务还应该(例如)每 5 分钟触发一次。这确保了 PM2 本身在死亡时会重新启动。换句话说:最长停机时间为 5 分钟。
- 重启。PM2 应在重启后启动,并在发出“pm2 save”时启动 PM2 监控的应用程序。
推荐阅读
- r - 使用正则表达式更改列表中数据框的元素名称
- python-3.x - df.to_excel 仅捕获迭代 pandas 的最后一个请求
- amazon-web-services - AWS EC2 中的 JSF Websocket 在 localhost 但不在 EC2 (AWS) 上工作
- python-3.x - 当测试结束时并非所有任务都停止时,Asyncio 单元测试将失败
- python - Visual Code Studio 不允许我运行 discord.py 文件
- git - Git - 以下未跟踪的工作树文件将被合并覆盖:
- python - 如何执行二维神经网络?
- javascript - ReferenceError:未定义响应。我不明白
- android - Android:如何进行多模块匕首组件注入?
- r - 将两列组合在一起并将其原始列名保留为单独的列