主管没有检测到文件

时间:2016-02-14 10:37:19

标签: go supervisord supervisor

我正在尝试通过代理运行命令。当我在shell中运行此命令时,它可以工作

http_proxy=http://username:password@proxy:29800 /home/www/program -env prod

但是当我把它放到我的主管配置中时它会告诉我它找不到这个文件

[program:goprogram]
command = http_proxy=http://username:password@proxy:29800 home/www/program -env prod
directory = /home/www/program
enviroment=PATH='/home/www/env/bin:/usr/bin'
user = user
autorestart = true

现在,我认为它与http_proxy或语法有关,但不确定如何修复它。

2 个答案:

答案 0 :(得分:1)

由于您尝试在命令本身中设置环境变量,因此您可以尝试使用其他方法来调用该命令:

command = /bin/sh -c 'http_proxy=http://username:password@proxy:29800 home/www/program -env prod'

那样:

  • 您不必将该环境变量添加到环境部分(或者所有监督流程和子流程'环境都可以看到凭据)
  • 仅为要执行的命令设置http_proxy

答案 1 :(得分:1)

您需要设置http_proxy变量。无论是@VonC描述的方式还是:

[program:goprogram]
command = home/www/program -env prod
directory = /home/www/program
enviroment=
    PATH='/home/www/env/bin:/usr/bin'
    http_proxy=http://username:password@proxy:29800
user = user
autorestart = true

更多信息可在this SO question中找到。