выскочка человечности, никогда не уничтожающая мой процесс

У меня есть простой сценарий удара:

echo "Starting"
function sigint {
   echo "sigint"
}

function sigterm {
   echo "sigterm"
}

trap sigterm SIGTERM
trap sigint SIGINT

while true
do
  sleep 2
  echo "-"
done

Я запускаю этот сценарий с выскочкой, использующей этот файл конфигурации:

description "start trapper"
kill timeout 1

script
  ./home/ubuntu/trapper.sh >> /home/ubuntu/log.txt
end script

post-stop script
  echo "finished" >> /home/ubuntu/log.txt
end script

Когда я запускаю его с выскочкой, я могу контролировать вывод его в /home/ubuntu/log.txt. Проблема, когда я останавливаю свое задание, я вижу, что sigterm отправляется в мою программу (это печатает его), я затем непосредственно вижу "законченный" (который записан в сценарии постостановки), но я все еще вижу "-" печатаемый каждые 2 секунды...

То, что происходит, - то, что выскочка никогда не отправляет SIGKILL в мой сценарий, даже если он говорит, что остановка успешно выполнилась (так как он входит в сценарий постостановки).

Любая справка была бы большой!

0
задан 28 September 2015 в 05:51
1 ответ

Скорее всего, он отправляет SIGKILL в оболочку. Попробуйте добавить exec перед ./ home / ubuntu / trapper.sh .

1
ответ дан 4 December 2019 в 17:04

Теги

Похожие вопросы