加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

使用supervisord运行django自定义管理命令

发布时间:2021-03-15 21:29:21 所属栏目:Linux 来源:网络整理
导读:我想使用supervisord为我的Django项目运行一些命令,但我不断收到以下错误: supervisor.log: 2012-05-18 17:52:15,784 INFO spawnerr: can't find command 'source' 如果我删除“source”命令,日志显示相同的错误:找不到命令’python’. supervisord.conf

我想使用supervisord为我的Django项目运行一些命令,但我不断收到以下错误:

supervisor.log:

2012-05-18 17:52:15,784 INFO spawnerr: can't find command 'source'

如果我删除“source”命令,日志显示相同的错误:找不到命令’python’.

supervisord.conf摘录:

[program:django]
directory=/home/mf/projects/djangopj/
command=beanstalkd -l 127.0.0.1 -p 11300
command=source /home/mf/virtualenvs/env/bin/activate
command=python manage.py command1
command=python manage.py command2
user=mf
autostart=true
autorestart=true

我尝试删除目录并添加命令的绝对路径,但我不断收到相同的错误.

我使用以下命令运行supervisord:

supervisord -c supervisord.conf -l supervisor.log

解决方法

source命令仅在bash中可用,supervisor命令由sh运行.我建议使用脚本来执行命令:

/etc/supervisor/conf.d/my_app.conf

[program:my_app]
command = bash /path/to/app/init.sh
directory = /path/to/app/
user = ubuntu
autostart=true
autorestart=true

/path/to/app/init.sh

#!/bin/bash

beanstalkd -l 127.0.0.1 -p 11300
source /home/mf/virtualenvs/env/bin/activate    
python manage.py command1
python manage.py command2

唯一的问题是主管只能控制脚本,而不能控制命令.如果您希望主管管理并保持特定进程的活动,我建议您在bash init文件中使用exec,这样主管就可以控制您的进程.例如.

/path/to/app/init.sh

#!/bin/bash

exec beanstalkd -l 127.0.0.1 -p 11300

您可能会发现这很有用:http://sjsnyder.com/managing-virtualenv-apps-with-supervisor

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读