2012-05-12 56 views
1

我有一個Ubuntu upstart腳本以下兩個exec聲明:運行Django FCGI守護進程同時

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 

第二個命令生存,而第一個停止工作。當兩個命令的順序相反時也是如此。

當使用與上述完全相同的語法從同一個啓動服務單獨運行(即獨立運行)時,這兩個命令都可以很好地工作。

我在做什麼錯?

回答

1

每個暴發戶的工作只能有一個主程序,所以運行兩件事意味着有兩個暴發戶。

因此,您需要將這些分爲兩個獨立的作業,具有獨特的名稱。如果你想控制他們在一起,你可以有他們跟隨第三控制工作

/etc/init/control-fcgi.conf:

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

然後雙方另兩個會做:

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