Upstart脚本无法正确启动服务

时间:2014-05-09 15:22:59

标签: ubuntu pid upstart sensu

我正在为我的sensu服务编写一个upstart脚本。以下是新贵脚本:

# my Sensu startup script
description "start, stop and restart the Sensu service"

start on startup
#start on runlevel [2345]
#stop on runlevel [!2345]

#env PIDFILE=/var/run/sensu/sensu-client.pid

expect fork

script
        #exec /etc/init.d/sensu-service client start
        exec /opt/sensu/bin/sensu-client -b -d /etc/sensu/conf.d -e /etc/sensu/extensions -p /var/run/sensu/sensu-client.pid -l /var/log/sensu/sensu-client.log -L debug
end script

问题是:Upstart返回一个PID(sensu-client start/running, process 11006),但实际上PID不同(下图)。

ps -ef | grep sensu
root     11009     1  7 16:16 ?        00:00:00 /opt/sensu/embedded/bin/ruby /opt/sensu/bin/sensu-client -b -d /etc/sensu/conf.d -e /etc/sensu/extensions -p /var/run/sensu/sensu-client.pid -l /var/log/sensu/sensu-client.log -L debug
root     11013  1698  0 16:16 pts/2    00:00:00 grep --color=auto sensu

它看起来是Sensu从一个pid开始,由于某种原因停止,然后从另一个独立于Upstart的pid开始。当在upstart conf文件中设置respawn时,这是显而易见的,因为发生的事情与此相同,预计会出现第二个sensu进程,其中不断变化的PID(增加)意味着新贵不断产生并杀死新的过程因为pid不是它所期望的。

请注意,从命令行运行/opt/sensu/bin/sensu-client -b -d /etc/sensu/conf.d -e /etc/sensu/extensions -p /var/run/sensu/sensu-client.pid -l /var/log/sensu/sensu-client.log -L debug可以正常工作。

任何帮助都会很棒。谢谢。

0 个答案:

没有答案