首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pm2过程中使用旧系统环境变量的复活

pm2过程中使用旧系统环境变量的复活
EN

Stack Overflow用户
提问于 2022-03-30 11:00:25
回答 1查看 491关注 0票数 0

我已经创建了一个节点应用程序,用于订阅OPC服务器并将数据存储在我们的s3桶上。为此,我正在使用[医]触角模块。

我正在通过RDP在Windows上工作,node-opcua模块在%LOCALAPPDATA%\Temp下创建一些文件,作为过程的一部分,并使用它。我使用pm2运行应用程序,它通过TMPTEMP环境变量获取这些文件的路径,这些变量是由进程本身动态生成的。

当Windows服务器重新启动时,删除这些文件和新文件的位置更新。我已经运行了pm2 save,并将pm2 resurrect命令放在批处理文件中,该文件在windows启动中有一个快捷方式,以确保进程自动启动。

问题是pm2进程已经复活,但仍然通过运行在pm2中的node-opcua进程抛出错误%LOCALAPPDATA%\Temp\{some_path} file not found。我手动运行了pm2 restart,但仍然没有成功。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-30 11:00:25

首先,我从节点-opcua模块的问题开始考虑这个问题,并考虑如何让它使用新的系统变量,但是由于进程不断地生成和删除临时文件,所以我需要pm2使用新的系统变量,它在系统重新启动后具有更新的路径,即使在pm2 restart之后也没有更新。

因此,为了更新变量,我想出了两个解决方案:

  • 要么删除旧进程并启动一个新的pm2进程来运行该应用程序,然后将其放入正在服务器重新启动时调用的批处理文件中。
  • pm2 restart {name} --update-env之后添加pm2 resurrect,系统变量将被更新。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71676016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档