设置应用程序的supervisor环境变量

2024-01-08

我正在从supervisord 运行一个应用程序,我必须为其设置一个环境。大约有30个环境变量需要设置。我尝试过把一切都放在一件大事上

环境=

线,这似乎不起作用。我还尝试了多个environment=行,但这似乎也不起作用。我还尝试了在 env 值周围使用和不使用 ' 。

设置我的环境以使其在监督控制下保持完整的最佳方法是什么?我应该从预先加载环境的 shell 脚本中调用我的实际程序(tornado、fwiw)吗?理想情况下,我想将所有环境变量放入包含文件中并使用主管加载它们,但我愿意以另一种方式进行。

UPDATE:

这是我在conf文件中使用的内容:

environment=
    PYTHONPATH=/srv/obsf/current/:$PYTHONPATH,
    PYTHON_EGG_CACHE=/srv/obfs/current/.python-eggs,
    OBFS_API_ENVIRONMENT_STAGE=test,

这大约持续 30 行,有很多环境变量。当我执行程序时,它立即崩溃,抱怨环境变量 OBFS_API_ENVRIONMENT_STAGE 未设置。


The relevant documentation section http://supervisord.org/configuration.html#supervisord-section-values解释说您需要将变量列出为逗号分隔的键/值对:

环境

格式为 KEY=val,KEY2=val2 的键/值对列表,将放置在主管进程的环境中(并因此放置在其所有子进程的环境中)。此选项可以包含值 %(here)s,该值扩展为在其中找到supervisord 配置文件的目录。请注意,子进程将继承用于启动 Supervisord 的 shell 的环境变量,但此处和程序的环境配置节中覆盖的变量除外。

The example for this section http://supervisord.org/configuration.html#supervisord-section-example也使用逗号:

environment = KEY1=value1,KEY2=value2

在内部这是parsed into a dict https://github.com/Supervisor/supervisor/blob/0b05ee3db077bf9e8e2fbe64d283ae91fb72a864/supervisor/datatypes.py#L69使用Pythonshlex lexer http://docs.python.org/library/shlex.html,因此它将正确处理引用。它还会去除空格,因此为了使内容更具可读性,您可以将内容分成多行:

environment =
    KEY1="Some longer value containing whitespace",
    KEY2=value2-on-a-new-line,

请注意,尾随逗号是可选的;它不会对输出产生影响。

然而,在 KEY1 之后缺少逗号可能会导致奇怪的值(上面的示例,减去后面的逗号)whitespace"会给你{'KEY1': 'Some longer value containing whitespace', '=': ','}作为环境字典),因为等号要求没有经过严格检查。我有提交了拉取请求 https://github.com/Supervisor/supervisor/pull/125来弥补这一点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

设置应用程序的supervisor环境变量 的相关文章

随机推荐

  • 为什么Maven打出来的包没有附带依赖?

    我已经按照最简单的 Maven 示例 https maven apache org guides getting started maven in five minutes html并做出以下内容pom xml file
  • C#:'is' 关键字并检查 Not

    这是一个愚蠢的问题 但您可以使用此代码来检查某些东西是否是特定类型 if child is IContainer 有没有更优雅的方法来检查 NOT 实例 if child is IContainer A little ugly silly
  • 如何使用 EF Core 3.1 将 IEnumerable 的属性存储在 Cosmos 表中

    我的项目使用 EF Core 3 1 并以 Azure Cosmos 作为数据库 我有一个这样的实体 public class MyEntity public IEnumerable
  • 使用 Flask-admin 将文件附加到模型

    我正在使用 Flask Admin 为网站提供管理界面 如何处理文件上传到 sqlalchemy 模型 例如 class Product db Model tablename products id db Column db Integer
  • 如何从 Postgres 的预订中查找第一个免费开始时间

    人们的工作时间为上午 10 00 至晚上 21 00 周日和公共假期除外 每隔 15 分钟为他们预留一个工作岗位 工作时间为15分钟至4小时 整个工作必须适合一天 如何查找从当前日期和时间开始在 Postgres 9 3 中未在给定持续时间
  • 使用 npm 运行 bash 脚本

    我想尝试使用 npm 运行 Web 应用程序的各种构建任务 我知道我可以通过添加一个来做到这一点scripts领域到我的package json像这样 scripts build some build command 当您有更复杂的命令和一
  • 创建一个可以按任意顺序包含 int 和 string 的类型

    我正在关注这个哈斯克尔简介 http www cs auckland ac nz references haskell haskell intro html goodies html 而这个特定的地方 用户定义类型 2 2 我发现特别晦涩难
  • 已删除的实体传递给持久异常

    我有这样的实体 文档 恩 到 1 文件类型 1 到 n 财产种类 1 到 n 文件属性 我只是尝试删除如下文档 实体管理器 删除 文档 但发生错误 16 45 51 499 错误 Seam Resource Servlet servlet
  • Eclipse(带 adt)不会看到/识别正在运行的 avd

    我已经尝试这个一周左右了 我已经按照教程让 hello android 工作了 但是当 AVD 启动时 程序无法运行 我正在运行 Windows 7 64 位和 eclipse 3 5 2 运行 adt 0 9 9 和 SDK r7 sdk
  • 创建具有删除功能的自定义 UIButton 类

    我有一个 UIButtons 网格 当我点击 编辑 按钮时 我希望每个按钮上都出现一个删除按钮 按下该按钮时 会删除该按钮 以及关联的数据 有点像苹果的主屏幕 当你按住一个按钮时 它就会开始摆动 角落里有一个 X 根据这篇文章 子类 UIB
  • 协作时如何管理配置文件?

    我正在编写一个简短的脚本 在页面顶部包含一些简单的变量 我想和一位朋友一起处理它们 但我们不确定如何管理每次为我们中的一个人拉取后需要更改的变量 从而向 git status 添加不必要的垃圾 我想过为我们每个人创建不同的命名分支 然后主服
  • 重置 --soft 和 --mixed 之间的区别

    我是 GIT 新手 并试图理解两者之间的区别git reset soft and git reset mixed 我知道后者会重置索引 而前者则不会 但我试图了解其实质区别是什么 我什么时候会使用其中一个而不是另一个 我读了这个堆栈溢出帖子
  • 将方法分配给事件时访问 React 中的“this”

    提前道歉 我对 React 很陌生 In printDocument我正在设置oHiddFrame onload this setPrint 甚至this setPrint但我收到一个错误Cannot set property contai
  • 在 Mac 上运行 S3 命令时出现“/usr/local/opt/python/bin/python2.7: badterpreter: No such file or directo”

    我使用的是 Mac High Sierra 我正在尝试安装 Amazon 的 S3 cli 工具 我以为我已经通过 pip 安装成功 但是当我尝试运行 s3 命 令时出现此错误 localhost davea s3cmd recursive
  • 如何禁用 AlertDialog 内的按钮?跟进问题

    我昨天问了这个问题 http stackoverflow com questions 7392321 how do you disable a button inside of an alertdialog 并相应地修改了我的代码 今天早上
  • 注册为自定义文件类型的默认应用程序

    注册即可打开自定义类型的文件 假设我有 cool 文件 如果用户尝试打开它 Android 会询问他们是否愿意使用我的应用程序打开它 如何 您可以将以下内容添加到必须打开文件 在我们的例子中为 pdf 的活动内的 AndroidManife
  • 使用 EnableDelayedExpansion 时变量修饰符的正确语法

    我希望能够执行 p 来仅查看文件的路径 但在循环中使用它时我无法获得正确的语法 使用 EnableDelayedExpansion 这是我的代码 echo off set dir1 TMP opt set dir2 c opt set em
  • 自动更新.NET应用程序[重复]

    这个问题在这里已经有答案了 我们正在开发一个非常复杂的系统 该系统由多个 WCF 服务 ASP NET MVC 应用程序 管理工具 Windows 窗体应用程序 组成 其中一些将在多个服务器上运行实例 我们正在为这样的系统寻找一个好的自动更
  • 程序崩溃以及编码中算术运算的一些问题

    stackoverflow 社区大家好 我的代码有一些问题 我目前是一名学生 所以基本上我是一个初学者 使用欧几里得算法 下面显示的代码应该将两个数字相除 直到商达到 0 但它只是在商变为 0 之前的最后一个除法过程中停止 我不知道程序是否
  • 设置应用程序的supervisor环境变量

    我正在从supervisord 运行一个应用程序 我必须为其设置一个环境 大约有30个环境变量需要设置 我尝试过把一切都放在一件大事上 环境 线 这似乎不起作用 我还尝试了多个environment 行 但这似乎也不起作用 我还尝试了在 e