与主管一起设置 pipenv
set up pipenv with supervisor
我想部署开发服务器,但我无法启动 celery 和 gunicorn。我正在为我的目的使用脚本
celery.sh
#!/bin/bash
cd /home/dev/app
pipenv run celery -A config worker -B -l info
和 start.sh 用于 gunicorn
#!/bin/bash
cd /home/dev/app
pipenv run gunicorn config.wsgi:application -b 127.0.0.1:8005 -w 2 -t 60 \
--env DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE \
--env DSN=$SENTRY_DSN \
--env DATABASE_URL=$DATABASE_URL \
--log-file - \
--error-logfile /home/dev/app/errors.log
这也是我的主管配置
[program:back]
directory=/home/dev/app/
command=/home/dev/bin/start
user=dev
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT
stopasgroup=true
killasgroup=true
[program:celery]
directory=/home/dev/app/
command=/home/dev/bin/celery
user=dev
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT
stopasgroup=true
killasgroup=true
当我 运行 sudo supervisorctl start celery
时,出现以下错误:
/home/dev/bin/celery: line 3: pipenv: command not found
我还按照 pipenv 文档所述添加了以下行 (https://pipenv.readthedocs.io/en/latest/diagnose/)
[supervisord]
environment=LC_ALL='en_US.UTF-8',LANG='en_US.UTF-8'
更新
更改了我的主管配置:
[program:back]
directory=/home/dev/app/
command=pipenv run gunicorn config.wsgi:application --bind 127.0.0.1:8005
user=dev
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT
stopasgroup=true
killasgroup=true
[program:celery]
directory=/home/dev/app/
command=pipenv run celery -A config:celery_app worker -B -l info
user=dev
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT
stopasgroup=true
killasgroup=true
现在我收到一个错误:
back: ERROR (no such file)
in your config file. change command=
to bash -c
followed by the full path and file to execute
this should do the trick
您需要给出 gunicorn 的明确路径。虽然我不确定 pipenv,但你得到的错误是因为主管试图在目录中找到 gunicorn。您应该将配置文件更改为如下内容:
[program:back]
directory=/home/dev/app/
command=/path/to/pipenv run /path/to/gunicorn config.wsgi:application --bind 127.0.0.1:8005
然后您必须重新启动您的 supervisord 才能加载设置。
sudo service supervisord reload
我想部署开发服务器,但我无法启动 celery 和 gunicorn。我正在为我的目的使用脚本
celery.sh
#!/bin/bash
cd /home/dev/app
pipenv run celery -A config worker -B -l info
和 start.sh 用于 gunicorn
#!/bin/bash
cd /home/dev/app
pipenv run gunicorn config.wsgi:application -b 127.0.0.1:8005 -w 2 -t 60 \
--env DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE \
--env DSN=$SENTRY_DSN \
--env DATABASE_URL=$DATABASE_URL \
--log-file - \
--error-logfile /home/dev/app/errors.log
这也是我的主管配置
[program:back]
directory=/home/dev/app/
command=/home/dev/bin/start
user=dev
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT
stopasgroup=true
killasgroup=true
[program:celery]
directory=/home/dev/app/
command=/home/dev/bin/celery
user=dev
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT
stopasgroup=true
killasgroup=true
当我 运行 sudo supervisorctl start celery
时,出现以下错误:
/home/dev/bin/celery: line 3: pipenv: command not found
我还按照 pipenv 文档所述添加了以下行 (https://pipenv.readthedocs.io/en/latest/diagnose/)
[supervisord]
environment=LC_ALL='en_US.UTF-8',LANG='en_US.UTF-8'
更新
更改了我的主管配置:
[program:back]
directory=/home/dev/app/
command=pipenv run gunicorn config.wsgi:application --bind 127.0.0.1:8005
user=dev
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT
stopasgroup=true
killasgroup=true
[program:celery]
directory=/home/dev/app/
command=pipenv run celery -A config:celery_app worker -B -l info
user=dev
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT
stopasgroup=true
killasgroup=true
现在我收到一个错误:
back: ERROR (no such file)
in your config file. change
command=
tobash -c
followed by the full path and file to execute this should do the trick
您需要给出 gunicorn 的明确路径。虽然我不确定 pipenv,但你得到的错误是因为主管试图在目录中找到 gunicorn。您应该将配置文件更改为如下内容:
[program:back]
directory=/home/dev/app/
command=/path/to/pipenv run /path/to/gunicorn config.wsgi:application --bind 127.0.0.1:8005
然后您必须重新启动您的 supervisord 才能加载设置。
sudo service supervisord reload