2017-02-03 93 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變量,但卻發生了一些骯髒的黑客攻擊。 –

相關問題