【发布时间】:2018-03-04 22:12:11
【问题描述】:
当我运行 sudo -E supervisor reread/reload
我在 [program:site] 部分定义了启动 gunicorn.conf.py 的命令
/etc/supervisor/conf.d/weather.conf
[program:site]
directory=/home/nhcc/campus-weather-station/weather_station
command=/home/nhcc/venv/weather_station/bin/gunicorn -c /home/nhcc/campus-weather-station/weather_station/gunicorn.conf.py -p gunicorn.pod weather_station.wsgi
gunicorn.conf.py
# -*- coding: utf-8 -*-
# /usr/bin/python3
import os
bind = "{}:8080".format(os.environ['DJANGO_WEATHER_STATION_HOST'])
worders = (os.sysconf('SC_NPROCESSORS_ONLN') * 2) + 1
loglevel = 'error'
command = "WTR_VENV/gunicorn"
pythonpath = "$PROJECT/weather_station"
它会显示错误。
我在 /etc/profile.d/project.sh 中设置了DJANGO_WEATHER_STATION_HOST
项目.sh
export DJANGO_WEATHER_STATION_HOST=the_host_ip
重新加载后却是徒劳。
我也设置在~/.profile
但还是报错。
文件 "/home/nhcc/campus-weather-station/weather_station/gunicorn.conf.py", 第 5 行,在 bind = "{}:8080".format(os.environ['DJANGO_WEATHER_STATION_HOST']) 文件 "/usr/lib/python3.5/os.py",第 725 行,在 getitem 中 从无 KeyError 提高 KeyError(key): 'DJANGO_WEATHER_STATION_HOST'
【问题讨论】:
-
Supervisord 需要在其配置中指定环境变量。参考:supervisord.org/configuration.html#environment-variables
-
Mabe我没有描述清楚。但我的问题是关于python环境变量部分。运行supervisor命令后调用python文件。错误出现了。