В компании, в которой я сейчас работаю, есть устаревшая служба, и ее скрипт инициализации использует старый SysvInit, но работает поверх systemd (CentOS 7).
Из-за большого количества вычислений этот сервис занимает около 70 секунд. Я не настроил тайм-аут для systemd и не изменил настройки по умолчанию /etc/systemd/system.conf
, но все же, когда я выполняю service SERVICE stop
свою службу, время ожидания истекает через 60 секунд.
Проверяя, journalctl -b -u SERVICE.service
я нахожу этот журнал:
Sep 02 11:27:46 service.hostname systemd[1]: Stopping LSB: Start/Stop
Sep 02 11:28:46 service.hostname SERVICE[24151]: Stopping service: Error code: 255
Sep 02 11:28:46 service.hostname SERVICE[24151]: [FAILED]
Я уже попытался изменить DefaultTimeoutStopSec
свойство при /etc/systemd/system.conf
к 90s
, но тайм - аут до сих пор происходит.
Кто-нибудь имеет какие-либо идеи, почему это тайм-аут в 60-х? Есть ли где-то еще, что это значение тайм-аута настроено? Есть ли способ, которым я могу это проверить?
Этот сервис работает с Java 7 и для его демонизации использует JSVC . Я настроил -wait
параметр со значением 120
.
TimeoutSec=infinity
- не было бы возможно, чтобы этот блок перезагружался бесконечно? Что если для завершения этого процесса потребуется «навсегда»? Я бы предложил большую сумму, вроде бы5min
, но, вероятно, нетinfinity
...systemd
предложенияsystemctl edit
(иmask
отключить их с помощью грубой силы, в отличие отdisable
) для этой цели. Вы никогда не должны редактировать файлы в/usr/lib/systemd
.TimeoutSec=infinity
не работал здесь, я использовалTimeOutSec=900
(15 минут), и это спасло мою заднюю часть. - Мне нужно было запуститьsystemctl daemon-reload
потом, прежде чем перезапустить сервис.Во время работы
systemctl show SERVICE_NAME.service -p TimeoutStopUSec
я мог по крайней мере увидеть тайм-аут, установленный systemd для моего сервиса.Я изменил скрипт на обычный файл модуля, чтобы он работал правильно.
источник