Как написать сценарий upstart для службы nginx?

В моем случае я пытаюсь написать сценарий выскочки для службы nginx. Вот мой контент,

#nginx upstart script
description "start and stop nginx server"

start on (net-device-up
and local-filesystems
and runlevel [2345])

stop on runlevel [016]

respawn
respawn limit 5 30

console output

exec service nginx start

Но это не работает, потому что нам нужно удалить pid и т. д. после остановки и запуска.

Может ли кто-нибудь помочь мне с этим? Я использую amazon linux [ec2].


person Dany    schedule 29.07.2016    source источник


Ответы (1)


Команда service nginx start — это вызов скрипта инициализации System V, который управляет демоном nginx так же, как и upstart. Вы хотите, чтобы upstart управлял демоном, как это делает сценарий инициализации, а не вызывал сценарий инициализации. Вы можете увидеть, что скрипт инициализации делает с cat /etc/init.d/nginx

У nginx есть пример выскочки на их вики.

# nginx

description "nginx http daemon"
author "George Shammas <[email protected]>"

start on (filesystem and net-device-up IFACE!=lo)
stop on runlevel [!2345]

env DAEMON=/usr/sbin/nginx
env PID=/var/run/nginx.pid

expect fork
respawn
respawn limit 10 5
#oom never

pre-start script
        $DAEMON -t
        if [ $? -ne 0 ]
                then exit $?
        fi
end script

exec $DAEMON
person Matt    schedule 29.07.2016