0

私は sensu サービスの upstart スクリプトを書いています。以下は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 が 1 つの pid で開始し、何らかの理由で停止し、Upstart とは別の pid で開始しているように見えます。これは、upstart conf ファイルに設定されている場合に明らかrespawnです。何が起こるかはこれと同じです。PID が変化し続ける (増加する) 状態で 2 番目の sensu プロセスが表示されることを期待してください。それが期待するものではありません。

コマンドラインから実行すると正常に動作することに注意してください/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

どんな助けでも素晴らしいでしょう。ありがとうございました。

4

0 に答える 0