Ошибка Cygwin: "- bash: fork: retry: ресурс временно недоступен"
недавно я переустановил Cygwin на своем компьютере, чтобы получить доступ к нескольким элементам командной строки, которые мне не хватало. У меня никогда не было проблем с Cygwin, но после этой переустановки сообщение об ошибке продолжает появляться после (почти) каждой введенной команды. Например:
-bash-4.1$ wc m1.txt
3 [main] bash 2216 child_info_fork::abort: data segment start: parent(0x26D000) != child(0x38D000)
-bash: fork: retry: Resource temporarily unavailable
2013930 4027950 74968256 m1.txt
Как правило, команда все еще выполняется (как показано выше), но не всегда. Иногда сообщение об ошибке появляется несколько раз подряд (тогда начальное число" 3 измените на "4" или "2", особенно если я начну второе окно Cygwin.
кроме того, как только я запускаю Cygwin, я получаю следующее сообщение перед приглашением:
3 [main] bash 6140 child_info_fork::abort: data segment start: parent(0x26D000) != child(0x36D000)
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: Resource temporarily unavailable
-bash-4.1$
на данный момент я обсуждаю, следует ли снова удалить/переустановить Cygwin или просто жить с сообщениями об ошибках, но мне было любопытно, может ли быть проблема, о которой я не знаю.
Спасибо за вашу помощь!
12 ответов:
(предполагая, что Cygwin установлен на C:\Cygwin):
- Откройте Диспетчер задач и закройте все процессы, связанные с Cygwin.
- открыть C:\Cygwin\bin в Проводнике Windows
- убедитесь, что черточки.отлично, эш.ехе, перебазироваться.exe и rebaseall существуют в этой папке
- если какой-либо из них отсутствует, повторно запустите Cygwin setup и выберите пакеты dash, ash и rebase
- щелкните правой кнопкой мыши C:\Cygwin папка, снимите флажок Только для чтения (если он установлен) и нажмите кнопку ОК.
- когда появляется ошибка о невозможности переключения некоторых файлов, выберите "игнорировать все". Дождитесь завершения этого процесса.
- перейти к C:\Cygwin\bin в Проводнике Windows
- щелкните правой кнопкой мыши тире.exe и нажмите кнопку "Запуск от имени администратора". Командная строка должна отображаться только с
$
- тип
/usr/bin/rebaseall -v
, нажмите enter и дождитесь завершения процесса.
- если вы получите ошибки о запущенных процессах Cygwin, повторите шаг 1. Если это все еще не работает, перезагрузите компьютер в безопасном режиме и повторите эти шаги.
- комментатор отметил, что в зависимости от ваших настроек вам может потребоваться ввести
cd /usr/bin && ./rebaseall -v
вместо.- попробуйте снова открыть Cygwin.
этот процесс работал для меня. Я надеюсь, что это сработает и для вас, ребята.
источник: http://cygwin.wikia.com/wiki/Rebaseall
Я хотел бы добавить следующее к приведенным выше ответам, так как это то, что я должен был сделать после переустановки Cygwin:
перейдите в каталог "/ usr / bin " (обычно, C:\cygwin\bin) и щелкните правой кнопкой мыши, запустите от имени администратора файл: dash.исполняемый Затем, в командной строке введите следующее, нажимая Enter после каждой строки:
cd /usr/bin/ /usr/bin/peflags * -d 1 /usr/bin/rebaseall -v
что он делает, он помечает dll как "rebase-able", а затем перебазирует их. Вы должны иметь peflags.exe в дополнение к вышеуказанным файлам (in предыдущий ответ.) Возможно, вам придется перезагрузить windows после этого, и вам обязательно нужно будет убедиться, что нет процессов или служб, принадлежащих cygwin running. (Используйте диспетчер задач, убейте все связанные процессы, а затем на вкладке Службы найдите любую службу, начинающуюся с CYG, и остановите ее.)
после этого я смог заставить cygwin работать без каких-либо ошибок о том, что dll загружается на неправильные адреса aka fork errors и т. д.
Я надеюсь, что это помогает другим, так как было больно найти.
SOURCE: http://www.cygwin.com/faq.html#faq.using.fixing-fork-failures and the rebase README file.
чтобы добавить к другим ответам здесь, мы столкнулись с той же проблемой, но не смогли запустить команду rebase из оболочки ash или dash. Однако при запуске команды из командной консоли Windows cmd сработало следующее.
cmd /c "C:\cygwin64\bin\ash.exe /usr/rebaseall -v"
-V-это получить подробный вывод
Я решил эту проблему, перезагрузив компьютер. Вероятно, установил обновление драйвера и продолжал использовать сон вместо выключения.
Я нашел другую информацию здесь : http://cygwin.com/ml/cygwin/2014-02/msg00531.html Вы должны удалить базу данных по / etc / rebase.db* и делать в" пепельных " окнах : peflags * - d 1 rebaseall Он работает для меня на 2 серверах.
испытал ту же проблему при загрузке Cygwin с cygiconv-2.dll разветвляется и не загружается успешно в терминале Cygwin, но после выключения моего антивируса (это было специально Ad-aware) проблема решена, и Cygwin работал правильно.
в случае, если вы используете Cygwin бабуна, после rebaseall, попробуйте запустить Cygwin, выполнив .бабун\cygwin\cygwin.bat в командной строке Windows или проводнике Windows.
Это работает для меня (при запуске консоли по умолчанию babun - mintty приводит к ошибке вилки).
У меня была ошибка на win10, и я пытался перебазировать на c: перед установкой. затем я увидел, что установщик устанавливает его вместо того, чтобы c:/Users/myuser так что я справлялся со всеми файлами c:/Users/myuser на c:.Бадун а затем перезапустить плюс открыть badun.летучая мышь
не Шуре если это было мудро его теперь дублируется XD... но потом это сработало снова.
Rebase
ing не помог в моем случае. В дополнение к тому, что другие люди предложили, я заметил, что сокращение длиныPATH
переменной окружения, Исправлена проблема для меня (и для других людей, как видно из этой ответ).
эта проблема носит прерывистый характер, и я нашел эту проблему, когда сеть слишком медленная для подключения к удаленной машине на AWS.... У меня есть сценарий оболочки, который работает через оболочку Gitbash, и он подключается к экземпляру AWS EC2 с ssh..... Большую часть времени он работал правильно, но 2 из 100 раз он вам на этот вопрос bash: fork: retry: ресурс временно недоступен .... Убийство терминала MSYS2 из Диспетчера задач помогает преодолеть эту проблему.... Отрицательная сторона-это вы нужно запускать скрипты с самого начала...
Я начал сталкиваться с этой проблемой после обновления до windows 10. На данный момент я не вижу, что какой-либо из вышеперечисленных методов работает.
Я замечаю, что если вы запустите cygwin с правами администратора (щелкните правой кнопкой мыши и скажите "Запуск от имени администратора"), то он отлично работает.
Или вы открываете cmd как администратор, а затем запускаете cygwin оттуда, а затем он работает нормально.