fork: retry: ресурс временно недоступен


31

Пока я подключаюсь к своему серверу, я получаю,

-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: Resource temporarily unavailable

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

-bash-4.1$ df -h
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: Resource temporarily unavailable
-bash-4.1$ 
-bash-4.1$ ls -lrth
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: Interrupted system call
-bash-4.1$ 
-bash-4.1$ ps -aef | grep `pwd`
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: Resource temporarily unavailable
-bash-4.1$ 

Почему это приходит? И как я могу решить это?


2
Выглядит как перегруженный файл подкачки (возможно, файловая система / tmp переполнена)
Ламберт

2
ulimit -a, возможно, вы достигли некоторого ограничения процесса
c4f4t0r

Ответы:


21

Это может быть связано с некоторым ограничением ресурсов, либо на самом сервере (или), специфичном для вашей учетной записи пользователя. Ограничения в вашей оболочке можно проверить с помощью ulimit -a. Esp проверка на ulimit -uмаксимальное количество пользовательских процессов, если вы достигли максимального числа процессов, fork не сможет создать что-либо новое и не получится с этой ошибкой. Это также может быть связано с проблемой подкачки / памяти


9

fork: ресурс временно недоступен

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

Чтобы увеличить лимиты, попробуйте запустить:

ulimit -Sn unlimited && ulimit -Sl unlimited

увеличить мягкие пределы до жестких или:

ulimit -l unlimited
ulimit -n 10240 

установить максимальный размер процесса неограниченным, а максимальное количество открытых файлов - 10240.

Смотрите: help ulimitдля получения дополнительной информации.

Чтобы сделать это постоянным, добавьте вышеупомянутые настройки в ваши файлы запуска rc (например ~/.bashrc).


Вы также можете использовать /etc/sysctl.conf(см .: man sysctl.conf) для увеличения ограничений ядра, например

kern.maxprocperuid=1000
kern.maxproc=2000

1
Когда возникает эта ошибка, подразумевает ли «повторная попытка» повторную попытку, пока ресурсы не станут доступными?
DaveTheMinion

@DavidB Или что он сделал повторную попытку, но потерпели неудачу.
Кусалананда

@Kusalananda Хорошо, спасибо.
DaveTheMinion

0

Проблема также может быть решена с помощью следующих команд:

yum install psmisc
killall -STOP -u user1
killall -KILL -u user1

Здесь user1 - группа пользователей, для которой превышен лимит


Убийство каждого отдельного процесса, принадлежащего пользователю, кажется немного сложным. Кроме того, эта yumкоманда, вероятно, также не сможет выполнить ветвление.
Кусалананда

Команда yum будет выполняться от имени пользователя root, если предположить, что проблема возникла не от пользователя root,
Арун

Если оболочка не может быть разветвлена, у dfнее тоже будут проблемы sudo.
Кусалананда
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.