Init.d-Dienst wird nach dem Kill nicht neu gestartet

Init.d-Dienst wird nach dem Kill nicht neu gestartet

Ich habe das folgende init.d-Skript unter Ubuntu 14.04 laufen

# 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

Wenn ich es manuell durch Ausführen beende, kill -9 <pid>wird der Prozess nicht neu gestartet. Gibt es eine Möglichkeit, ihm bei Beendigung mitzuteilen, dass er neu gestartet werden soll?

Antwort1

Du hast ihm nicht gesagt, dass es wieder erscheinen soll.

Als Upstart-Kochbuchsagt,

6.28 respawn

Mit dieser Strophe wird der Job immer dann erneut gestartet, wenn das Hauptskript/die Hauptausführung beendet wird, ohne dass das Ziel des Jobs auf „Stoppen“ geändert wurde.

6.29 respawn limit

Ja das istanderszu einem einfachen Respawn: die Angabe respawn limitbedeutet nicht respawn, dass …

Mit anderen Worten: Sie müssen festlegen, respawnauch wenn Sie auch haben respawn limit.

Antwort2

Ich glaube, Sie können die Inittab-Datei verwenden, um ihm den Respawn mitzuteilen.

Ein Eintrag darin sieht so aus: id:runlevels:action:process

Als eine der Aktionen kann Respawn festgelegt werden.

verwandte Informationen