Лимит Openfiles автоматически уменьшается при передаче 2 ^ 21, Ubuntu 16.04

Как правило, чтобы запустить команду, введите имя команды и нажмите Enter. Таким образом, почти наверняка все, что вам нужно сделать, это открыть терминал, ввести skype (или skypeforlinux, если вы установили новую нативную версию), а затем нажать Enter. .

Если вы не знаете имя только что установленной команды, вы можете использовать dpkg-query -L имя_пакета для вывода содержимого только что установленного пакета и поиска вещей, помещенных в каталог с именем bin (большинство, хотя и не все, исполняемые файлы размещены в различных каталогах bin).

В частности, со скайпом все немного сложнее, потому что он находится в двух пакетах, а не в одном: skype и skype-bin. Итак, вам нужно запустить:

$ dpkg-query -L skype-bin skype | grep '/bin'
/usr/bin
/usr/bin/skype

Это показывает, что есть файл с именем skype в /usr/bin, так что, как я сказал в начале, все, что вам нужно Чтобы запустить его, введите skype в своем терминале и нажмите Enter.

1
14.03.2017, 23:21
1 ответ

Кажется, существует два общесистемных ограничения, задокументированных в Documentation / sysctl / fs.txt

  • fs.file-max - максимальное количество открытых файлов (дескрипторов файлов) во всей системе.
  • fs.nr_open - это глобальный верхний предел для количества открытых файлов для каждого процесса, и он ограничивает значение RLIMIT_NOFILE , которое является тем, что ulimit -n наборы. Неудивительно, что по умолчанию 1024 * 1024 или 2 ^ 20.

Итак:

# sysctl fs.nr_open
fs.nr_open = 1048576
# ulimit -Hn 1048577
-su: ulimit: open files: cannot modify limit: Operation not permitted
# sysctl fs.nr_open=$[ 2**22 ] 
fs.nr_open = 4194304
# ulimit -Hn 4000000            # now it can be set

Но file-max , похоже, не препятствует установке лимита для каждого процесса, у меня это было установлено все время:

# sysctl fs.file-max
fs.file-max = 262144

Итак, что бы ни устанавливало ваши ограничения ( pam_limits.so ?), Вероятно, он получает и игнорирует ошибку в системном вызове из-за ограничения, установленного sysctl. Или, возможно, он где-то запишет ошибку, проверьте свои журналы.

0
28.01.2020, 00:59

Теги

Похожие вопросы