Лучший способ справиться с этим - заставить spawn-fcgi работать на переднем плане, а не демонизировать. Страница man для spawn-fcgi говорит, что опция -n
делает это. Тогда вы можете переписать всю эту выскочку работы так:
start on runlevel [2345]
stop on runlevel [016]
respawn
exec spawn-fcgi -n -d /home/ubuntu/workspace/rtbopsConfig/myserver/ -f /home/ubuntu/workspace/rtbopsConfig/myserver/index.py -a 127.0.0.1 -p 9001 >> /var/log/myserver.sys.log 2>&1
Обратите внимание, что с Upstart 1.4 вам даже не нужно направление журнала, так как по умолчанию это «консольный журнал», который будет иметь все выходные данные в /var/log/upstart/$UPSTART_JOB.log .. так что это будет просто будь
start on runlevel [2345]
stop on runlevel [016]
respawn
exec spawn-fcgi -n -d /home/ubuntu/workspace/rtbopsConfig/myserver/ -f /home/ubuntu/workspace/rtbopsConfig/myserver/index.py -a 127.0.0.1 -p 9001
Стоит отметить, что он запускается с правами root, но прослушивает порт 9001. Так что, вероятно, вам лучше работать, как никто. С Upstart 1.5 (Ubuntu 12.04 и более поздние версии) Просто добавьте это:
setuid nobody
setgid nogroup
(Возможно, вам придется изменить nobody / nogroup на ubuntu / ubuntu, поскольку ваши файлы находятся в / home / ubuntu)
Также обратите внимание, что start on startup
не будет работать надежно, поскольку событие startup
происходит до монтирования файловых систем и до запуска сети. Также start on shutdown
просто не работает, так как это не настоящее событие. Смотрите man upstart-events
, чтобы узнать больше событий.