使用supervisord运行django自定义管理命令
发布时间:2021-03-15 15:47:48 所属栏目: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 (编辑:武汉站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |