伙计们,
我试图将一些东西转移到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 。