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.