Init.d サービスが強制終了後に再起動しない

Init.d サービスが強制終了後に再起動しない

Ubuntu 14.04で次のinit.dスクリプトを実行しています

# Logstash Service

description     "Logstash"

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

stop on runlevel [016]

respawn limit 10 5

# NB: Upstart scripts do not respect
# /etc/security/limits.conf, so the open-file limits
# settings need to be applied here.
limit nofile 32000 32000

console output

setuid tps

chdir /opt/logstash-1.4.2

env LS_HOME=/opt//logstash-1.4.2

env CONFIG_DIR=/opt/config/logstash
env JAVA_HOME=/usr/lib/jvm/jdk-8-oracle-x64
env SINCEDB_DIR=/opt/config/logstash
env _JAVA_OPTIONS="-Djava.net.preferIPv4Stack=true"
exec $LS_HOME/bin/logstash -f $CONFIG_DIR -vvv | svlogd /opt/logs 2>&1

手動で実行して強制終了すると、kill -9 <pid>プロセスは再生成されません。終了した場合に再生成するように指示する方法はありますか?

答え1

再出現するように指示しませんでした。

アップスタートクックブックとして言う

6.28 respawn

このスタンザを使用すると、ジョブの目標が停止に変更されることなくメイン スクリプト/exec が終了するたびに、ジョブが再度開始されます。

6.29 respawn limit

はい、これは違う単純なリスポーンに: を指定してもrespawn limitを意味するわけではありませんrespawn

つまり、respawnがある場合でも を設定する必要がありますrespawn limit

答え2

inittab ファイルを使用して、再生成するように指示できると思います。

エントリは次のようになります: id:runlevels:action:process

アクションの1つとしてリスポーンを設定できます。

関連情報