помилка: не може fork () для статусу: ресурс тимчасово недоступний (git)


6

коли я хочу щось робити: додавати, видаляти, тягнути, натискати на github, у мене просто є ця помилка в моєму терміналі

Спасибі заздалегідь!

  selnaz:iOS-Tidinfo Lnaz$ git add .
  error: cannot fork() for status: Resource temporarily      unavailable
  fatal: Could not run git status --porcelain
  fatal: git status --porcelain failed
  fatal: git status --porcelain failed
  fatal: git status --porcelain failed
  fatal: git status --porcelain failed
  fatal: git status --porcelain failed
  fatal: git status --porcelain failed

Редагувати:

selnaz:iOS-Tidinfo Lnaz$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
file size               (blocks, -f) unlimited
max locked memory       (kbytes, -l) unlimited
max memory size         (kbytes, -m) unlimited
open files                      (-n) 256
pipe size            (512 bytes, -p) 1
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 709
virtual memory          (kbytes, -v) unlimited  

Правка2

selnaz:iOS-Tidinfo Lnaz$ ps xfu | wc -l
ps: illegal option -- f
usage: ps [-AaCcEefhjlMmrSTvwXx] [-O fmt | -o fmt] [-G gid[,gid...]]
      [-u]
      [-p pid[,pid...]] [-t tty[,tty...]] [-U user[,user...]]
   ps [-L]
   0

Чи можете ви показати нам вихід ulimit -aцього терміналу? Скільки процесів у вас запущено на цьому сервері? Що ps xfu | wc -lповертається?
Кеннет Хосте

@KennethHoste Я додаю це вище!
Елназ

Спробуйте ps -xfu | wc -lнатомість, оскільки перший з них видав помилку. Ця команда повинна підраховувати кількість запущених процесів.
Дарт Android

Відповіді:


7

Вихід із fork()системи повинен вийти з ладу (з цією помилкою), якщо запущено занадто багато процесів. Детальніше man 2 forkдив.

Перезавантаження має усунути проблему.

Я буду припускати, що, можливо, існує багато процесів, які ще не повністю закінчилися під час налагодження програми для iOS.

Запустивши нижній рядок, буде показано три найбільші кількості процесів, які виконують одну команду (і як процеси можуть виконувати ці команди), щоб вказати, яка команда використовує всі процеси:

ps -efwww | awk '{print $8}' | sort | uniq -c | sort -n | tail -3

Я все-таки отримую помилку з чимось, але операція вдається, тож, дякую!
Slbox

2

У мене це питання було саме зараз. Це сталося через корупцію в моєму каталозі git після копіювання на диски. Git - це комбінація невеликих інструментів Unix, що підключають один одного. Запуск статусу git змушував git переходити по спіралі вниз до нескінченної рекурсії процесів, впадаючи в межі процесів моєї системи ("максимальні користувацькі процеси" в ulimit).

У моєму конкретному випадку у мене були підмодулі, які передбачають жорстке посилання на батьківське сховище git, тому видалення підмодуля та повторна ініціалізація вирішили мою проблему.

Ви також можете спробувати зробити git-клон свого сховища десь в іншому місці.

Іншим більш драстичним варіантом буде заглиблення в копію каталогу .git та очищення всіх, крім пакетів, об'єктів та реф. Ви можете зберегти робоче дерево, скопіювавши його назад у верхній частині після повторного просвічування git repo.

Удачі!


0

У моєму випадку я редагував txt-файл із Vi в оболонці, при цьому намагався перейти до Github в іншій оболонці. Вихід із Vi дозволив іншій оболонці натиснути без цієї помилки.

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