Ответы:
В более новых ядрах (2.6.32+) в CentOS / RHEL вы можете изменить это во время выполнения с помощью / proc / <pid> / limit:
cd /proc/7671/
[root@host 7671]# cat limits | grep nice
Max nice priority 0 0
[root@host 7671]# echo -n "Max nice priority=5:6" > limits
[root@host 7671]# cat limits | grep nice
Max nice priority 5 6
Как описано здесь , prlimit
команда, представленная в util-linux 2.21, позволяет вам читать и изменять пределы запущенных процессов.
Это продолжение записи /proc/<pid>/limits
, которая не была интегрирована в основное ядро. Это решение должно работать.
Если у вас его еще prlimit(1)
нет, вы можете найти код минималистичной версии на prlimit(2)
странице руководства .
В более новой версии util-linux-ng вы можете использовать команду prlimit, для получения дополнительной информации прочитайте эту ссылку /superuser/404239/setting-ulimit-on-a-running-process
Вы можете попробовать ulimit man ulimit
с опцией -n, однако страница mag не позволяет большинству ОС не устанавливать эту настройку.
Вы можете установить общесистемный лимит описаний файлов с помощью sysctl -w fs.file-max=N
и сохранить изменения после загрузки в/etc/sysctl.conf
Тем не менее, я бы также посоветовал взглянуть на этот процесс, чтобы увидеть, действительно ли нужно открывать так много файлов в определенный момент времени, и если вы действительно можете закрыть некоторые файлы и быть более эффективными в этом процессе.
ulimit
не применяет настройки к запущенным процессам .
Процесс может изменить свои собственные мягкие ограничения, если он запрограммирован на это (или если вам удастся его взломать), но он не может повысить свои жесткие ограничения, если у него нет возможности CAP_SYS_RESOURCE. Вы можете проверить пределы во время выполнения в /proc/$pid/limits
.