我已经创建了一个节点应用程序,用于订阅OPC服务器并将数据存储在我们的s3桶上。为此,我正在使用[医]触角模块。
我正在通过RDP在Windows上工作,node-opcua模块在%LOCALAPPDATA%\Temp下创建一些文件,作为过程的一部分,并使用它。我使用pm2运行应用程序,它通过TMP和TEMP环境变量获取这些文件的路径,这些变量是由进程本身动态生成的。
当Windows服务器重新启动时,删除这些文件和新文件的位置更新。我已经运行了pm2 save,并将pm2 resurrect命令放在批处理文件中,该文件在windows启动中有一个快捷方式,以确保进程自动启动。
问题是pm2进程已经复活,但仍然通过运行在pm2中的node-opcua进程抛出错误%LOCALAPPDATA%\Temp\{some_path} file not found。我手动运行了pm2 restart,但仍然没有成功。
发布于 2022-03-30 11:00:25
首先,我从节点-opcua模块的问题开始考虑这个问题,并考虑如何让它使用新的系统变量,但是由于进程不断地生成和删除临时文件,所以我需要pm2使用新的系统变量,它在系统重新启动后具有更新的路径,即使在pm2 restart之后也没有更新。
因此,为了更新变量,我想出了两个解决方案:
pm2 restart {name} --update-env之后添加pm2 resurrect,系统变量将被更新。https://stackoverflow.com/questions/71676016
复制相似问题