2017-02-03 94 views
0

我想与管理员服务运行龙卷风api。supervisorctl无法重新加载虚拟环境激活文件

这是我写来运行我的上司使用应用程序的配置:

[program:tornado_main] 
command=/home/ubuntu/env/bin/python /home/ubuntu/<repo>/__main__.py 
directory=/home/ubuntu/<repo> 
user=ubuntu 
stdout_logfile = /var/log/supervisor/tornado_main.log 
stderr_logfile = /var/log/supervisor/tornado_main_err.log 
environment=PATH=/home/ubuntu/env/bin,PYTHONPATH=/home/ubuntu/<repo>,VIRTUAL_ENV=/home/ubuntu/env/ 

这完美运行。

代码中有一些部分依赖于写入虚拟环境的激活文件中的一些环境变量。

现在,问题是主管无法读取这些环境变量并抛出错误。 当我手动运行它时,它工作正常。

我错过了什么?

回答

1

当您运行env/bin/python,您使用的是virtualenv没有激活它。这通常是足够的,但是如果你真的依赖于被激活的virtualenv(例如因为你想在该环境中启动子进程或使用其他环境变量),那么你需要在你的管理员配置中激活它(如果你这样做,你可能会想删除environment行复制什么activate会做):

command=bash -c 'source /home/ubuntu/env/bin/activate && python /home/ubuntu/<repo>/__main__.py' 
+0

谢谢。我会尽力的。虽然我在“环境”一行中指定了所有的env变量,但却发生了一些肮脏的黑客攻击。 –

相关问题