【问题标题】:set up pipenv with supervisor使用主管设置 pipenv
【发布时间】:2019-01-27 15:02:55
【问题描述】:

我想部署开发服务器,但在启动 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)

【问题讨论】:

    标签: python gunicorn supervisord pipenv


    【解决方案1】:

    你需要给出 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 重新加载

    【讨论】:

    • 安装在虚拟环境中如何找到gunicorn的路径?
    • @AnujTBE 一般是/path-to-env/bin/gunicorn 否则你可以在文件夹上做一个grep
    【解决方案2】:

    在您的配置文件中。将 command= 更改为 bash -c 后跟要执行的完整路径和文件 这应该可以解决问题

    【讨论】:

      猜你喜欢
      • 2018-10-14
      • 1970-01-01
      • 2016-04-16
      • 1970-01-01
      • 2020-03-30
      • 2019-04-21
      • 2017-06-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多