Supervisor设置环境variables并获取错误:键/值对的意外结束

伙计们,

我试图将一些东西转移到docker集装箱中,这意味着将它作为一个守护进程转变为一个由supervisord控制的独立进程。 现在我对supervisord没有太多的经验,所以这可能是我的一个简单的configuration错误。

这个问题源于这个应用程序需要设置特定的环境variables。 当作为守护进程运行时,我会通过bash脚本来设置它们

#!/bin/bash ORACLE_HOME=/home/oracle/app/ TNS_ADMIN=/home/oracle/app/network/admin export ORACLE_HOME TNS_ADMIN export LD_LIBRARY_PATH=$PATH:/home/oracle/app/lib ncftpd_authd 

在supervisord.conf中,我将其设置为

 [program:authd] environment=ORACLE_HOME="/home/oracle/app/",TNS_ADMIN="/home/oracle/app/network/admin",export ORACLE_HOME TNS_ADMIN,export LD_LIBRARY_PATH="$PATH:/home/oracle/app/lib" command=/usr/local/sbin/ncftpd_authd stdout_events_enabled=true stderr_events_enabled=true 

但是,如果我打电话给supervisord -c /etc/supervisord.conf,我得到一个错误

 [root@0d7f9a5d7c3a src]# supervisord -c /etc/supervisord.conf Error: Unexpected end of key/value pairs 

我相信这是关系到环境线,好像我评论说,supervisord将开始(但authd不会运行)。 在supervisord conf文件中设置环境我做了什么错误?

environment应该是一个键/值对列表,这意味着它不应该包含export 。 正确的值是:

 environment=ORACLE_HOME="/home/oracle/app/",TNS_ADMIN="/home/oracle/app/network/admin",LD_LIBRARY_PATH="$PATH:/home/oracle/app/lib" 

我不确定主pipe是否支持可变扩展; 您可能还需要用其值replace$PATH