Установить ограничение стека навсегда в Ubuntu
Мне нужно постоянно увеличивать лимит стека в Ubuntu 18.04, чтобы новый лимит был установлен для всех пользователей при любых обстоятельствах. Таким образом, установка с ulimit -s ...
, в том числе в профиле Bash и аналогичных решениях, не будет работать для меня. Я старался:
- Установка ограничения в
/etc/security/limits.conf
, Это не имело никакого эффекта. Я попытался установить жесткие и мягкие ограничения для пользователя root и пользователя. Перезапусков. Ничего не меняется - Задавать
DefaultLimitSTACK=32768
в/etc/systemd/system.conf
а также/etc/systemd/user.conf
, 32768 - желаемый предел стека в килобайтах. Диспетчер окон не будет загружаться после перезапуска, вместо этого я попал в некую аварийную корневую оболочку, где большинство команд также перестали работать. Я интерпретировал это как ограничение стека, установленное на 32 КБ вместо 32 МБ, как предполагалось. - Задавать
DefaultLimitSTACK=33554432
в/etc/systemd/system.conf
а также/etc/systemd/user.conf
, Система загружается нормально,ulimit -s
по-прежнему показывает 8192, ничего не изменилось.
Может кто-нибудь посоветовать, как сделать эту работу? Спасибо!
1 ответ
Вы можете попробовать написать скрипт (где вы устанавливаете ulimit) в каталоге /etc/init.d/.
Синтаксис скриптов в /etc/init.d/ - https://bash.cyberciti.biz/guide//etc/init.d
Эти сценарии выполняются при включении и выключении системы [Специальная функция вызывается для запуска и остановки].
Во-первых, systemd игнорирует параметры, установленные в ulimits, см. https://serverfault.com/a/678861
В моей системе Ubuntu 18 я использую стек 16 МБ и устанавливаю его в /etc/systemd:
user.conf: DefaultLimitSTACK=16777216
system.conf: DefaultLimitSTACK=16777216
- Перезапустите систему или выйдите из сеанса, чтобы новые настройки вступили в силу. Вы можете использовать
ulimit -s <value>
установить свой стек для сеанса оболочки пользователя на уровне DefaultLimitStack или ниже.
Дополнительно вы можете добавить ulimit -s 16384
в файл .bashrc вашего пользователя. Затем каждый раз, когда начинается его сеанс, стек будет установлен на это желаемое значение.