在我的用例中,我正在尝试为nginx服务编写一个upstart脚本。这是我的内容,
#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]。
答案 0 :(得分:1)
命令service nginx start
是对System V init脚本的调用,它像upstart一样管理nginx守护进程。您希望upstart像init脚本一样管理守护进程,而不是调用init脚本。您可以看到init脚本对cat /etc/init.d/nginx
nginx有一个新贵示例on their wiki。
# nginx
description "nginx http daemon"
author "George Shammas <georgyo@gmail.com>"
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