同时运行Django fcgi守护进程

时间:2012-05-12 20:00:49

标签: django fastcgi upstart

我在Ubuntu exec脚本中有以下两个upstart语句:

exec /bin/su -c "cd /var/www/ssrc/jvwf/; \
python /var/www/ssrc/jvwf/manage.py runfcgi --settings=spzr.settings-admin \
--pythonpath=/var/www/ssrc/jvwf method=prefork socket=/tmp/www/spzr-adm.socket \
pidfile=/tmp/www/spzr-adm.pid minspare=2 maxspare=4 maxchildren=10 \
maxrequests=65535 daemonize=false" - www-data

exec /bin/su -c "cd /var/www/ssrc/jvwf/; \
python /var/www/ssrc/jvwf/manage.py runfcgi --settings=spzr.settings-live \
--pythonpath=/var/www/ssrc/jvwf method=prefork socket=/tmp/www/spzr.socket \
pidfile=/tmp/www/spzr.pid minspare=2 maxspare=4 maxchildren=10 \
maxrequests=65535 daemonize=false" - www-data

第二个命令存活,而第一个命令停止工作。当两个命令的顺序颠倒时也会发生同样的情况。

当使用与上述语法完全相同的语法从同一个upstart服务单独(即单独)运行时,这两个命令都能正常工作。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

每个新手入门作业只能有一个主程序,因此运行两件事意味着有两个新手入职。

因此,您需要将这些作业拆分为两个具有唯一名称的独立作业。如果您想一起控制它们,您可以按照第三个控制工作进行操作

/etc/init/control-fcgi.conf:

start on runlevel [2345]
stop on runlevel [016]

然后其他两个都会这样做:

start on starting control-fcgi
stop on stopping control-fcgi