微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

注销后保持 node.js express 运行

如何解决注销后保持 node.js express 运行

我已经设置了一个pm2 开始的 node.js 应用程序,并且一切正常

我还尝试添加监视和保存选项(请参阅下面有关 Windows 服务的更多信息)

jlongArray

但最终在我从 Windows 注销 RDP 后应用不再运行。

pm2 start app.js --watch pm2 save 的相关输出下方

pm2 report

我想知道 pm2 主路径是否可能是根本原因,因为它是用户共享,但我已经找到了如何通过 == PM2 | 2021-04-10T11:26:39: PM2 log: --- New PM2 Daemon started ---------------------------------------------------- PM2 | 2021-04-10T11:26:39: PM2 log: Time : Sat Apr 10 2021 11:26:39 GMT+0200 (Central European Summer Time) PM2 | 2021-04-10T11:26:39: PM2 log: PM2 version : 4.5.6 PM2 | 2021-04-10T11:26:39: PM2 log: Node.js version : 14.16.1 PM2 | 2021-04-10T11:26:39: PM2 log: Current arch : x64 PM2 | 2021-04-10T11:26:39: PM2 log: PM2 home : V:\.pm2 PM2 | 2021-04-10T11:26:39: PM2 log: PM2 PID file : V:\.pm2\pm2.pid PM2 | 2021-04-10T11:26:39: PM2 log: RPC socket file : \\.\pipe\rpc.sock PM2 | 2021-04-10T11:26:39: PM2 log: BUS socket file : \\.\pipe\pub.sock PM2 | 2021-04-10T11:26:39: PM2 log: Application log path : V:\.pm2\logs PM2 | 2021-04-10T11:26:39: PM2 log: Worker Interval : 30000 PM2 | 2021-04-10T11:26:39: PM2 log: Process dump file : V:\.pm2\dump.pm2 PM2 | 2021-04-10T11:26:39: PM2 log: Concurrent actions : 2 PM2 | 2021-04-10T11:26:39: PM2 log: SIGTERM timeout : 1600 PM2 | 2021-04-10T11:26:39: PM2 log: =============================================================================== Please copy/paste the above report in your issue on https://github.com/Unitech/pm2/issues env var 在 Windows 上更改它,但它没有执行也骗人。

我已经搜索了 github 问题,那里似乎已经有类似的未解决问题,例如 this one

如果我直接进入服务器启动 pm2 并注销用户,也会发生同样的情况 进程将消失。有没有办法在全球寡妇上启动pm2 所以当用户退出时它不会退出?或者我正在做某事 错了吗?

我也想了解是否有任何保留应用程序的选项 从 Windows 服务注销用户后运行

这里有人有解决方案吗?

我还尝试使用 admin cmd 设置 PM2_HOME,如 readme here 中所述。

而且我已经在 express 应用程序中为 SIGTERM 添加一个处理程序:

pm2-windows-service

解决方法

在 PM2 主路径和应用程序路径中有一个奇怪的最终空间 当我尝试在资源管理器中重命名该文件夹时,该文件夹被锁定(多次重新启动后仍“锁定”......最终使用 this special syntax 删除)。 把空格改成下划线,我已经重启了虚拟机并发出了

pm2 reloadLogs
pm2 report

最后我通过 pm2 重新启动并再次保存了应用程序。

pm2 save 之前,请注意在 admin cmd 提示符中从 pm2-service-install 输出的注释非常重要。

PM2_HOME 值(服务用户和 不应包含任何“用户上下文”变量 [例如%APPDATA%]): F:\Appl\pm2

pm2-service-install之后,您仍然需要手动第一次启动服务

注销并再次重新启动虚拟机以仔细检查:pm2 应用程序现在运行良好(尽管我必须使用 admin cmd 和 pm2)。

如果您部署更新需要新环境变量,请使用

刷新变量
pm2 restart 0 --update-env
pm2 save

别忘了在 save 后面加上 --update-env

使用

检查您的应用(例如 id 0)
pm2 env 0

在这种情况下,请记住,您可以通过重新启动 PM2 服务(当然,也可以通过机器重新启动)来进行快速检查/测试。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。