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

重生可以設定為動作之一。

相關內容