gpt4 book ai didi

英雄联盟 PS :Exec with ENV Vars

转载 作者:行者123 更新时间:2023-12-05 06:52:18 25 4
gpt4 key购买 nike

我在 Heroku 文档中看到了这个:

Heroku Exec 创建的 SSH session 不会将配置变量设置为环境变量(即, session 中的 env 不会列出 heroku config:set 设置的配置变量)。

我需要能够通过 SSH 专门连接到我们的 sidekiq 容器并在那里运行控制台 session 。为此,我需要访问 ENV 变量。我不能在一次性 bash 容器中执行此操作,因为 sidekiq 容器的配置不同,我需要确认值设置正确(通过控制台)。

是这样的:heroku ps:exec -a [our-app] -d [sidekiq.1] --with-env-vars

如何使用 heroku ps:exec(或类似的命令)通过 ssh 进入现有的带有配置变量的 dyno?

最佳答案

没有最理想的,但有一个对我有帮助的选项。

识别命令调用

这是为了识别将包含环境变量的潜在进程。

ps auxfww这会给你一个类似的结果:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
nobody 1 0.0 0.0 6092 3328 ? Ss 18:19 0:00 ps-run
u19585 4 0.5 0.6 553984 410984 ? Sl 18:19 0:19 puma 4.3.12 (tcp://0.0.0.0:36152) [app]
u19585 26 0.0 0.0 9836 2248 ? S 18:19 0:00 \_ bash --login -c bundle exec puma -p 36152 -C ./config/puma.rb

在这种情况下 bash --login -c bundle exec puma将是我们的 ENV Process 选择器。

加载您的 ENV 变量

然后运行 ​​source每次通过 ps:exec 连接时调用 ENVS 的命令

source <(cat /proc/$(pgrep -f "bash --login -c bundle exec puma")/environ | strings)
  • source <(<DATA>) : 在调用中导出变量
  • pgrep -f "<IDENTIFIED_COMMAND>" : 选择 PID
  • cat /proc/<PID>/environ : 包含应用环境变量
  • strings : 将“二进制”行转换为字符串行

之后,您将在控制台中获得主要的 ENV 变量。

最后把你的source复制到合适的地方在需要时调用它。

关于英雄联盟 PS :Exec with ENV Vars,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65996120/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com