fork: tryry: ресурс тимчасово недоступний


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

Відповіді:


20

Це може бути пов’язано з певним обмеженням ресурсів на самому сервері (або), специфічному для вашого облікового запису користувача. Обмеження вашої оболонки можна перевірити через 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команда, ймовірно, також не змогла б розщедритися.
Kusalananda

Команда yum буде запущена через root користувача, припускаючи, що проблема сталася на іншого користувача, ніж root
Arun

Якщо оболонка не вдасться розщедритися, у dfнеї виникнуть проблеми sudo.
Kusalananda
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.