limits.conf позволяют выставить ограничения только для пользователя, а не для юнита. Кроме того, туда смотрит PAM, который вообще не участвует в запуске systemd-юнита, т.к. не открывается новая сессия с шеллом, поэтому обычно тамошние настройки игнорируется для юнитов. В общем-то, проблема отсюда и вытекает (т.к. PAM знает только про пользователя и имя процесса, который выполняется, но не другие характеристики, в отличие от systemd).Ограничение для пользователя слабо помогает, когда есть сервисы, работающие под рутом. Как их через limits.conf ограничить? Не будешь же урезать процессы всему руту, подразумевая урезание сервису. Да и с конкретным пользователем проблема - к примеру, у меня несколько инстансов postgresql. На разных портах с разными DATADIR, но все работающие под одним пользователем, разумеется. Ну и как мне количество открытых файлов или другую настройку выставлять через limits.conf, если там подразумевается только сумма по всем процессам от этого пользователя? Средствами systemd делается для конкретных юнитов.
|