Расположение конфигурации для тайм-аута для обработчиков SIGTERM перед завершением процесса, когда Linux выключается - PullRequest
2 голосов
/ 01 июля 2010

Я пытаюсь отладить проблему с отключением Java.Эти отключающие хуки используют SIGTERM + сторожевой поток.Я подозреваю либо ошибку в потоке сторожевого таймера, либо ошибку в моем процессе сериализации, но не могу устранить вторую возможность, так как я не могу отладить (даже записать в файл), поэтому я хотел бы увеличить время ожидания для отладки, но я не знаю, где это значение.

Редактировать: я на Ubuntu

Ответы [ 2 ]

1 голос
/ 21 марта 2014

Относительно времени ожидания по умолчанию SIGTERM,

Для Upstart в Ubuntu это, по-видимому, 5 секунд .

Для killproc в семействе Red Hat,по-видимому, это по крайней мере 1 + 3 = 4 секунд .Мне неясно, изменилось ли это в более новой версии функции.

Этот ответ есть в вики сообщества.

1 голос
/ 01 июля 2010

Согласно /etc/rc.d/rc0.d/S01halt в моей системе Fedora 12, это 2 секунды:

kill_all $"Sending all processes the TERM signal..." -15 $OMITARGS
# No need to sleep and kill -9 if no processes to kill were found
if [ "$?" == 0 ]; then
    sleep 2
    kill_all $"Sending all processes the KILL signal..." -9 $OMITARGS
fi

В Ubuntu (по крайней мере, 10.04) код находится в /etc/init.d/sendsigs. Он ожидает до 10 секунд завершения процессов перед отправкой SIGKILL любому из оставшихся.

Вместо того, чтобы изменить тайм-аут, может быть, лучше попытаться закрыть приложение самостоятельно (kill 12345, где 12345 - PID приложения).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...