Новомодный сервис не уничтожает процессы на остановке

У меня есть новомодный сервис, который поддерживает много экземпляров рабочих.

pm-all-workers.conf:

start on runlevel [2345]
stop on runlevel [!2345]

env NUM_WORKERS=25

pre-start script
for i in `seq 1 $NUM_WORKERS`
  do
    start pm-worker N=$i
  done
end script

пополудни-worker.conf:

start on runlevel [2345]
stop on stopping pm-all-workers

instance $N
respawn
respawn limit 10 5
umask 022

exec su - someuser -c "/home/someuser/bin/worker.bin"

Это хорошо работало, но недавно некоторые рабочие процессы продолжают бродить вокруг, даже если сервис останавливается. Мое понимание является выскочкой, отправит SIGTERM в процессы на остановке и затем после нескольких секунд SIGKILL, если процесс будет все еще.

Как возможно, что некоторые процессы не становятся уничтоженными? Я могу уничтожить процессы, прекрасные вручную с pkill -9 worker.bin.

0
задан 16 December 2014 в 20:54
1 ответ

Возможно, Upstart отправляет su сообщение SIGTERM / KILL вместо вашего worker.bin. Попробуйте использовать раздел setuid для выскочки и удалите бит su.

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

Теги

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