1

У меня есть следующий скрипт init.d, работающий на 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

Когда я вручную убиваю его, выполняя kill -9 <pid> процесс не возрождается. Есть ли способ сообщить ему о возрождении в случае его прекращения?

2 ответа2

2

Вы не сказали это респауну.

Как говорит Поваренная книга Upstart,

6.28 respawn

В этом разделе всякий раз, когда основной скрипт /exec завершается, без изменения цели задания на остановку, задание запускается снова.

6.29 respawn limit

Да, это отличается от обычного респауна: указание respawn limit не подразумевает respawn .

Другими словами, вы должны установить respawn даже если у вас также есть respawn limit .

-1

Я думаю, что вы можете использовать файл inittab, чтобы сообщить ему о возрождении.

Запись в нем выглядит так: id: runlevels: action: process

респаун может быть установлен как одно из действий.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .