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

使用此节,每当主脚本/执行退出时,无需将作业的目标更改为停止,作业就会重新启动。

6.29 respawn limit

对,这就是不同的到一个简单的重生:指定respawn limit并不意味着respawn

换句话说,respawn即使您有,也必须设置respawn limit

答案2

我认为您可以使用 inittab 文件来告诉它重生。

其中的条目如下所示:id:runlevels:action:process

重生可以被设置为动作之一。

相关内容