Tengo el siguiente script init.d ejecutándose en Ubuntu 14.04
# 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
Cuando lo elimino manualmente ejecutando kill -9 <pid>
el proceso no reaparece. ¿Hay alguna manera de decirle que reaparezca si se termina?
Respuesta1
No le dijiste que reapareciera.
Como el libro de cocina advenedizodice,
6.28
respawn
Con esta estrofa, siempre que el script/exec principal salga, sin que el objetivo del trabajo haya sido cambiado para detenerlo, el trabajo se iniciará nuevamente.
6.29
respawn limit
Sí, eso esdiferentea una reaparición simple: especificar
respawn limit
no implicarespawn
.
En otras palabras, debes configurarlo respawn
incluso si también tienes respawn limit
.
Respuesta2
Creo que puedes usar el archivo inittab para indicarle que reaparezca.
Una entrada se ve así: id:runlevels:action:process
La reaparición se puede configurar como una de las acciones.