杀死后不会重新生成init.d服务


1

我在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>进程手动杀死它时,不会重新生成。有没有办法告诉它如果终止则重新生成?

Answers:


2

您没有告诉它重生。

作为新贵食谱

6.28 respawn

使用此节,只要退出主脚本/执行程序,而作业的目标未更改为停止,作业将再次启动。

6.29 respawn limit

是的,这普通重生不同:指定respawn limit并不意味着respawn

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


-1

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

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

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


虽然这个答案还可以,但它也有些过时了– Ubuntu的Upstart仅具有最小的inittab兼容性,而systemd根本不读取它。
grawity

实际上,这还不行。新贵也忽略了inittab。参见unix.stackexchange.com/a/196197/5132
JdeBP 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.