У меня есть node.js и pm2, установленные на Pi (Raspbian). PM2 был настроен для запуска через pm2 startup
и сценарии инициализации, которые он создает. Иногда при перезагрузке выключение на несколько минут зависает:
A stop job is running for LSB: PM2 init script (... / 5min)
Каждый раз в то время как 1 , что я предполагаю , что это PM2 не закрыта должным образом и зависания в течение полных 5 минут.
В этой системе я точно знаю, какими приложениями управляет PM2, и мне действительно все равно, правильно ли они закрываются.
Мой вопрос: как мне сократить время ожидания с 5 минут, скажем, до 15 секунд или около того? Где это настроено?
Я прочитал на форуме, что это был DefaultTimeoutStopSec
ключ в /etc/systemd/system.conf , поэтому я попытался установить его в «15s», но это не имело никакого эффекта. Я тоже попробовал то же самое в /etc/systemd/user.conf , но без изменений. Время ожидания все еще установлено на 5 минут.
1 Я действительно знаю, что именно это вызывает, но детали не важны, и эффект неизбежен.
stop
сценарий (по умолчанию) , вы можете переписать его, чтобы выполнитьforcestop
или даже убитьpm2
вместо постепенного завершения работы.stop
в скрипте инициализации pm2 вообще ничего не делать и позволить ему умереть естественным образом при завершении работы. Это ужасное решение для общего пользования, но в этой конкретной системе это нормально. Я все еще хочу знать, как изменить 5-минутный тайм-аут, хотя.Ответы:
Вы перестраиваете systemd из исходного кода, исправляя аппаратный таймаут
systemv-sysv-generator
из того,TimeoutSec=5min
что вам нужно. Или вы спрашиваете systemd о ручке управления где-нибудь в заголовках Fedora / SUSE или LSB.Или, с другой стороны, вы отказываетесь от использования этого
rc
сценария, который у вас есть, и пишете сервисный модуль systemd для своей службы, время ожидания которого вы можете установить с явнымTimeoutSec=
параметром, установленным с помощью файла настроек в/etc/systemd/system/pm2.service.d/timeout.conf
случае необходимости.Учитывая это , это , это , это , это , и другие, первое правило для перехода на Systemd применяется здесь.
дальнейшее чтение
источник
/etc/systemd/system.conf
имеет линию#DefaultTimeoutStopSec=90s
которые можно раскомментировать и изменить
источник
nvme
диске - для действительно быстрых отключений используйте Alpine Linux (нетsystemd
)