6

Всякий раз, когда я вхожу в оболочку, я получаю эту ошибку

-bash: fork: Resource temporarily unavailable
-bash-3.2$

Я не могу выполнить любую команду, которая использует fork() .

Я попытался ulimit -u как он не использует fork и вернул 35 . Каким-то образом мой максимальный процесс установлен на 35 .

Я хочу увеличить это, но я не знаю, где это сделать.

6 ответов6

10

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

sudo ulimit -u 1000

Если вы хотите сделать более постоянное изменение, вам нужно отредактировать либо /etc/limits.conf либо /etc/security/limits.conf (в зависимости от вашего дистрибутива Linux) и добавить следующие строки:

username hard nproc 1000

Замените username фактическим именем пользователя

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

Примеры:

myuser hard nproc 1000
@mygroup hard nproc 3000
*    hard nproc 500
3

Это можно изменить в /etc/security/limits.conf . Ищите строки вида:

username hard nproc 25
@groupname hard nproc 100

Эти строки ограничивают username пользователя user до 25 процессов и пользователей в группе groupname до 100 процессов. Вам понадобятся права суперпользователя на компьютере.

0

Вот несколько идей:

Если ваш limits.conf пуст, grep -l ulimit /etc/* $HOME/.* 2> /dev/null чтобы проверить, установил ли кто-то ulimit где-нибудь, и удалите его.

После редактирования limit.conf все, что вам нужно сделать, это выйти и снова войти в систему, чтобы вступить в силу.

Чтобы получить процесс, используйте exec . Попробуйте, например, exec sudo su стать пользователем root.

0

Есть еще одна возможность, что конфигурация для "noproc" не работает во время настройки в /etc/security/limits.conf.

Есть еще один файл, который переопределяет вашу конфигурацию /etc/security/limits.d/90-nproc.conf.

*          soft    nproc     1024
root       soft    nproc     unlimited

Здесь * config переопределит все, что вы установили в предыдущем файле конфигурации. Так что в идеале вы настраиваете свои настройки в этом файле.

0

Этого должно быть достаточно, чтобы (пере) установить ulimit, не нужно менять конфигурацию (не говоря уже о общесистемной конфигурации в /etc). И 35 процессов должно быть много, что-то не так с процессом входа в OP.

В терминале выполните ps -au , которая должна показать все процессы, работающие от вашего имени, проверьте список (или опубликуйте его здесь), чтобы увидеть, происходит ли что-то странное.

0

Как уже упоминалось, посмотрите на limits.conf . Когда вы входите в Gnome, KDE или любой другой графический интерфейс, вероятно, у вас уже запущено более 35 процессов.

Выйдите из GUI и переключитесь на VT, например, с помощью Ctl Alt F1, и войдите без GUI.

Теперь вы должны иметь возможность заглянуть в /etc/security/limits.conf . Если он пуст или все закомментированы, вы можете посмотреть, есть ли в каталоге /etc/security/limits.d , что уменьшило ulimit .

На консоли вы также должны иметь возможность запускать дополнительные процессы для редактирования или настройки limits.conf или файлов в limits.d .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .