我正在尝试使用主管服务运行龙卷风api。
这是我编写的使用supervisor运行我的应用程序的配置:
[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/
这完美运行。
代码中有一些部分依赖于在虚拟环境的激活文件中编写的一些环境变量。
现在,问题是主管无法读取这些环境变量并引发错误。 当我手动运行它时,它工作正常。
我错过了什么?
答案 0 :(得分:1)
当您运行env/bin/python
时,您正在使用virtualenv
而不是激活它。这通常就足够了,但是如果你真的依赖virtualenv
被激活(例如因为你想在那个环境中启动子进程或使用其他环境变量),那么你需要激活它在你的主管配置中(如果你这样做,你可能想要删除重复environment
将会做的activate
行:
command=bash -c 'source /home/ubuntu/env/bin/activate && python /home/ubuntu/<repo>/__main__.py'