Как настроить открытый предел файла процесса пользователя?

По умолчанию удар (оболочка) не расширяется, имя файла, начинающееся с точки (рассмотрел скрытый файл), если точка явно не указана. С тех пор [.] шаблон, а не буквенный символ, он не инициировал дисплей скрытых файлов и так ls -d [.][!.]?* ничему не соответствует.

Можно изменить это поведение по умолчанию путем выполнения shopt -s dotglob, который устанавливает опцию на, всегда включает скрытые файлы при расширении шаблонов имени файла (известный как "globbing").

Пример (знак доллара в начале строки указывает на приглашение оболочки; не вводите его):

$ touch .foo
$ ls -d .[!.]?*
.foo
$ ls -d [.][!.]?*
ls: cannot access [.][!.]?*: No such file or directory
$ shopt -s dotglob
$ ls -d [.][!.]?*
.foo

Проблема с echo [D] то расширение, не происходит, если никакое имя файла не подобрано. Так как Вам не назвали файл D когда Вы попробовали его, echo был дан и отражен, что Вы буквально ввели.

Пример расширения пути, только происходящего, когда имя файла соответствует:

$ touch apple
$ echo a*
apple
$ rm apple
$ echo a*
a*

Если Вы удаляете все файлы, которые соответствуют [D]*, затем echo [D]* даст Вам [D]*.

8
04.05.2014, 12:22
1 ответ
[116219]В Linux вы можете настроить его через

limits.conf

  1. , например, через

  2. (который устанавливает как жёсткий, так и мягкий лимит для процессов, запускаемых под пользовательской debian-трансляцией на 8192)

Вы можете проверить изменение через:

Если демон уже запущен, он должен быть перезапущен так, чтобы был поднят новый лимит. В случае, если демон запускается вручную с пользовательского сеанса, пользователь должен перезапуститься, чтобы получить новый лимит.

В качестве альтернативы, вы также можете указать дополнительные лимиты непосредственно в [116603]/etc/security/limits.conf[116604], конечно, - но я предпочитаю [116605]. d[116606] для лучшей поддержки.

Для введения различных мягких/жестких лимитов используйте две записи, например

(логическое обоснование: мягкое значение устанавливается после входа пользователя в систему, но пользовательскому процессу разрешается увеличивать лимит до жесткого)

Ограничения [116607]. conf[116608]/[116609]limits.d[116610] configuration используется [116611]pam_limits.so[116612], который включен по умолчанию на текущих дистрибутивах Linux.

  1. Related
  2. Существует также общесистемный лимит на Linux,
/proc/sys/fs/file-max

Псевдофайл

предоставляет больше информации, например,

количество выделенных обработчиков файлов (т.е, количество открытых в настоящее время файлов); количество свободных дескрипторов файлов; и максимальное количество файловых обработчиков

Таким образом, с одной стороны, вам, возможно, придется скорректировать общесистемный лимит [116621]file-max[116622], в случае, если он очень мал и/или система уже очень загружена. С другой стороны, простого увеличения [116623]file-max[116624] недостаточно, так как оно не влияет на мягкие/жесткие ограничения, налагаемые механизмом pam_limits.

Изменить [116625]file-max[116626] в командной строке (перезагрузка не требуется):

$ ln -s ~/dotfiles/bashrc ~/.bashrc
Для постоянных изменений добавьте [116627]fs. file-max=786046[116628] в [116629]/etc/sysctl.conf[116630] или [116631]/etc/sysctl.d[116632].

Верхний предел для [116633]fs.file-max[116634] записан в

fs.nr_open

. Например, (опять же) на Ubuntu 10.04:

$ grep /dev/pts /proc/mounts
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620 0 0

(что составляет 1024*1024)

# mount devpts /dev/pts -t devpts -o mode=620
Этот sysctl также настраиваемый.[116258].
15
27.01.2020, 20:10

Теги

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