1

execUbuntuupstartスクリプトには次の2つのステートメントがあります。

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

2番目のコマンドは存続しますが、最初のコマンドは機能しなくなります。2つのコマンドの順序が逆になった場合も同じことが起こります。

上記とまったく同じ構文を使用して、同じupstartサービスから個別に(つまり単独で)実行すると、両方のコマンドが完全に機能します。

私は何が間違っているのですか?

4

1 に答える 1

1

各アップスタートジョブは1つのプライマリプログラムしか持つことができないため、2つのことを実行することは、2つのアップスタートジョブを持つことを意味します。

したがって、これらを一意の名前を持つ2つの別々のジョブに分割する必要があります。それらを一緒に制御したい場合は、それらが続く3番目の制御ジョブを持つことができます

/etc/init/control-fcgi.conf:

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

そして、他の2つは両方とも実行します。

start on starting control-fcgi
stop on stopping control-fcgi
于 2012-09-07T19:18:05.463 に答える