Error: Could not fork child process: Resource temporarily unavailable (-1).
DLL rebasing may be required; see ‘rebaseall / rebase —help’.
@jnavila true I think we need to develop a captcha v3 for this 😅
@jnavila @pedrorijo91 Sorry about that. I got it. It will not happen in next time. anyway, thank you. 😞
@theprogrammingthinker No problem. You’re facing an issue and looking for help; that’s sane.
Here is the fix.
1 Go to you Windows Defender Security Center settings
2 Click on App & Browser Control
3 At the bottom click on the «Exploit Protection Settings» link
4 Go to «Program Settings» and click on the «Add program to customize» -> «Choose exact file path»
5 Navigate to «C:Program FilesGitusrbinsh.exe» and add it
6 Override and turn off the following:
Mandatory ASLR
Randomize memory allocations (Bottom-up ASLR)
7 Click «Apply» and now everything should work fine.
Good luck,
Gabriel
DevMammadov, thisisjaymehta, tsilva89, qslia, sfernandoupgrade, anarrkerimli, KirillDyachkovskiy, RobRukavina, y0himba, HilHam18, and 2 more reacted with thumbs down emoji
NO NO NO NO NO NO NO NO NO NO NO NO NO.
Turning off ASLR is not OK. This is a seriously important kernel-level security measure. Do not advise people to turn it off.
Please read my comment before going NO NO NO.
I said they need to be disabled for those executables only. They cannot work and are not compatible with these features (high randomization , high entropy ASLR) becasue they «assume» the load address of some DLLs which ASLR pretty much wants you to not assume. Turning it off only for those processes until the problem is fixed will not cause any harm as before the the ASLR was turned off for them by default. I work in this field trust me, those processes were broken before this versio of Windows 10. This one just made a feature default which was not there before by default.
Anyway, ignoring what @sxlijin is saying, if you want them to work just they way they did before, no more no less secure, you simply need to turn those features off. The rest of the OS will work in its default mode for existing processes and files.
You will also notice if you look in the Program Settings that Microsoft themselves disable some if these feature for some of their executable or other incompatible ( crappy ) software.
Cheers, all.
@gamitech: apologies for the tone of my initial response, but please remember that GitHub is a public forum, and people often come in from search results when trying to find a fix for whatever issue they have. Simply recommending that people turn off ASLR for whatever binary is borking itself is not a good recipe for secure systems.
Now that you’ve explained why the fix is both acceptable and necessary, I have no issue with your recommendation. Also, if anyone watching this knows what issue in git-for-windows/git should be cross-linked, please link it — I couldn’t find it after a cursory search.
Tried gamitech’s suggestion and it had no effect for me. I uninstalled 2.17 and installed 2.18, and that fixed it.
I was tripped up by this today, in connection with WSL Terminal and Git Bash. Disabling ASLR for relevant binaries does fix it, but the list of binaries is unclear and potentially long. See mintty/wsltty#6 (comment) for instructions on scripting the ASLR disable step for all binaries under a base directory.
Hi. I was with this problem, but I could get throught it disabling my antivirus.
Here is the fix. 1 Go to you Windows Defender Security Center settings 2 Click on App & Browser Control 3 At the bottom click on the «Exploit Protection Settings» link 4 Go to «Program Settings» and click on the «Add program to customize» -> «Choose exact file path» 5 Navigate to «C:Program FilesGitusrbinsh.exe» and add it 6 Override and turn off the following: Mandatory ASLR Randomize memory allocations (Bottom-up ASLR) 7 Click «Apply» and now everything should work fine.
Good luck, Gabriel
didnt work
Git Bash was working fine until today. Now I get the following error upon launch. If I press enter it then closes:
Error: could not fork child process: Resource temporarily unavailable
(-1). DLL rebasing may be required. See ‘rebaseall / rebase —help’.
I’ve tried reinstalling, restarting, installing different versions, nothing seems to help. When googling around, all the similar issues aren’t exactly the same and the answers are pretty much latin to me.
Currently running Git version 2.10.1 64 bit on Windows 7. A work computer.
GitBash screenshot
KyleMit♦
36.6k63 gold badges440 silver badges635 bronze badges
asked Oct 6, 2016 at 16:50
11
l’m late,your problem caused by window system bit,if you windown system is 32bit please down git for 32bit,64bit system down git 64bit.
answered Mar 13, 2017 at 7:50
1
Вы устанавливали из релиз-пакета (установщика) или собирали самостоятельно?
Если вы построили сами, каков результат uname -a
?
По общему мнению, любую систему Windows нужно перезагружать не реже, чем каждые 42 дня
Меня это сразу поразило _после_ перезагрузки — я установил с помощью установщика.
К сожалению, у cygwin всегда были случайные проблемы с разветвлением, см. Https://cygwin.com/faq.html#faq.using.fixing -fork-failures
Похоже, что это происходит чаще с текущими сборками выпуска Windows Technical Preview (или даже гораздо чаще с одной конкретной сборкой).
Это не мелочь.
Я получаю это все время, когда запускаю cygwin из панели задач Windows с помощью mintty.exe -
(программа запуска по умолчанию, созданная установкой cygwin).
Но я могу дважды щелкнуть mintty.exe в проводнике или запустить из cmd, и cygwin будет успешно работать, или я могу запустить его как администратор.
Windows 10 явно проделывает какие-то махинации с панелью задач.
Это Cygwin 64- или 32-битный? Под пусковой установкой панели задач вы имеете в виду значок приложения, прикрепленный к панели задач?
64-битный. Да — значок приложения закреплен на панели задач.
Не могу воспроизвести, здесь работает. Вы пробовали «ребазинг»? Можете ли вы попробовать новую (параллельную, минимальную) установку Cygwin?
Теперь проблема ушла. Типовая винда.
Для тех, кто переходит из Google — столкнулся с той же проблемой с новой функцией (поправьте меня, если я ошибаюсь) в Windows 10:
Force randomization for images (Mandatory ASLR)
Force relocation of images not compiled with /DYNAMICBASE
Отключение (по умолчанию) решает проблему.
Спасибо за эту информацию. Мы должны поделиться этим в списке рассылки cygwin.
Это с Cygwin 64 Bit?
Можете ли вы предоставить подробную информацию о том, как отключить эту функцию Windows?
Конечно.
Я использую Cygwin x64 в Windows 10 build 1709.
Чтобы отключить эту функцию, вам необходимо:
- Нажмите
Win
+S
- Введите
Windows Defender Security Center
- Нажмите
App & browser control
- Прокрутите вниз и нажмите
Exploit protection settings
- Найдите раздел
Force randomization for images
и выберитеOff by default
- Перезагрузить
Он должен быть отключен по умолчанию, но я думаю, что Microsoft включит его по умолчанию в будущем, когда все больше и больше программ станут совместимыми.
Об этом уже говорилось в списке рассылки Cygwin? Я не вижу упоминания об этом, но я хотел убедиться. ИМО, это на самом деле довольно серьезная проблема.
Нет, у меня было намерение сообщить об этом, но вы можете сделать это сами, пожалуйста.
Я согласен, что это звучит очень важно для обсуждения здесь.
Я только что столкнулся с этой проблемой. Однако Force randomization of for images (Mandatory ASLR)
уже был установлен в Off by default
. Также перезагрузка не решила проблему.
Также есть «рандомизация распределения памяти (снизу вверх ASLR)», которая, как я подозреваю, может быть проблемой для форка Cygwin, но я не уверен.
Вот исправление.
1 Перейдите к настройкам Центра безопасности Защитника Windows.
2 Нажмите «Управление приложениями и браузером».
3 Внизу нажмите ссылку «Настройки защиты от эксплойтов».
4 Перейдите в «Настройки программы» и нажмите «Добавить программу для настройки» -> «Выбрать точный путь к файлу».
5 Перейдите к «C: Program FilesGitusrbinsh.exe» и добавьте его.
6 Отмените и отключите следующее:
Обязательный ASLR
Произвести случайное распределение памяти (ASLR снизу вверх)
7 Нажмите «Применить», и теперь все должно работать нормально.
Также добавьте эти другие двоичные файлы из той же папки: expr.exe, uname.exe, grep.exe, rm.exe
Удачи,
Габриэль
Я столкнулся с этой проблемой сегодня, пытаясь запустить терминал WSL в Windows 10 (сборка 17134.228), а затем обнаружил, что это также влияет на Git Bash и msys2. Однако изменения настроек ASLR только для mintty.exe или bash.exe было недостаточно. Я обнаружил, что мне также пришлось изменить их для wslbridge.exe в случае WSL Terminal и других файлов в случае Git Bash и msys2.
Если у вас установлен msys2, вы можете использовать PowerShell (в режиме администратора) для создания сценария изменений для всех двоичных файлов следующим образом:
$ files = Get-ChildItem C: msys64usrbin * .exe
$ files | ForEach-Object {Set-ProcessMitigation -name $ _. Fullname -disable ForceRelocateImages, BottomUp, HighEntropy}
В Git для Windows сделайте то же самое, но измените строку для установки $ files следующим образом:
$ files = Get-ChildItem -recurse «C: Program FilesGit * .exe»
Обратите внимание, что это может отключать настройки ASLR для большего количества двоичных файлов, чем это строго необходимо; Я не уверен, на какие аспекты среды выполнения msys2 / cygwin влияет ASLR.
@acinnes
Для дальнейшего использования:
Этот код можно еще больше упростить / сократить до примерно такого:
$files = (Get-ChildItem 'C:msys64usrbin*.exe').FullName
$files.ForEach({Set-ProcessMitigation $_ -Disable ForceRelocateImages})
А для Git (для Windows) примерно так:
$files = (Get-ChildItem 'C:Program FilesGitusrbin*.exe').FullName
$files.ForEach({Set-ProcessMitigation $_ -Disable ForceRelocateImages})
ВАЖНЫЕ ЗАМЕЧАНИЯ (к сведению):
- Это НИКОГДА не понадобится для не 64-битных версий Windows (но кто все еще использует 32-битную Windows, верно? …)
- Это необходимо ТОЛЬКО для 64-разрядных версий Windows 10 (или Windows 7/8 / 8.1 с недавним EMET), в которых есть параметр
Force randomization for images (Mandatory ASLR)
параметреOn by default
_System-Wide_ (или что-то подобное другими поставщиками _Security Suite_) ForceRelocateImage
(AKA «_Mandatory ASLR_») — единственное средство смягчения последствий, которое должно быть явно-Disabled
-> Без этого смягчения ASLR НЕ будет применяться, поскольку приложения не «запрашивают» его. (как и подготовленные для этого) -> Без ASLR другие средства защиты @acinnes-Disabled
там —BottomUp,HighEntropy
— не нужны, поскольку они _НЕ_ «_applicable_», поскольку они ‘ re ASLR — Улучшение (дальнейшее углубленное) смягчение последствий.
Я включу _ « Снимок экрана» _ в «Системные настройки» _ Вкладка_ эксплойтов» _ Раздел_ «Центр безопасности Windows» _ Системное приложение_ (Windows 10 x64 — Версия 1803 — Сборка 17134.228
— Полная Название сборки / версии 17134.rs4_release.180410-1804
) просто для удобства — хотя он также немного объясняет эти настройки -> если у него есть «ASLR» в имени смягчения, он не будет применяться, если есть _NO_ «ASLR» применяется к процессу / приложению / исполняемому файлу.
Ваше здоровье.
РЕДАКТИРОВАТЬ
Вот некоторые
- Удобный,
- Ручной работы,
- Совершенно новый,
- «Двойной щелчок» умеет,
- Пошаговое объяснение / документальное подтверждение
Файлы сценариев PowerShell !.
Просто убедитесь, что переменная « $installPath
» (в верхней части скрипта) указывает на «правильный путь» и измените расширение, удалив в конце « .txt
» … ( после этого должно быть » .ps1
» …)
MSys64 — Путь по умолчанию .ps1.txt
Git для 64-разрядной версии Windows — путь по умолчанию .ps1.txt
Ну тогда пока.
@gamitech
Пока неплохая попытка …
В последних версиях Windows (обновления + обновления) и Git (для Windows) (который, очевидно, включает обновленный MSys2 / MinTTY), если общесистемный параметр Mandatory ASLR
находится в On by default
Option (из соображений безопасности и т. Д.), Это _ «скорее исключение, чем правило» _:
- редко исполняемый файл в пути / папке
C:Program FilesGitusrbin
, который не нужно добавлять в _ «Список исключений» _, а приложение «Центр безопасности Windows» просто ужасно / ужасно, чтобы добавить 200+ «. exe и один за другим измените параметры смягчения последствий …
(очевидно, эта _ «ошибка» _ имеет какое-то отношение к _direct ссылки / доступы_ к msys-2.0.dll
_ «Адреса памяти точки входа на основе изображений» _ — вместо более нормализованных и почти / в основном обязательных способ загрузки DLL с помощью нескольких «Windows API» … Вероятно, это побочный эффект некоторых инструментов кросс-компиляции / сборки / связывания, используемых в процессе _ «переноса» _ кода в Windows … А не действительно проблема, если только эти «Адреса» не _ «рандомизированы» _ — в соответствии с тем, что «_ASLR_», «_Рандомизация размещения адресного пространства_», в конце концов, ВСЕ О нем …)
Пример ОЧЕНЬ ПРОСТОГО ASLR со ссылкой на поиск Google:
(Примечание: в хорошей реализации ASLR перемещается ВСЕ , а не только «Код» …)
Ваше здоровье!.
Спасибо за дополнительную информацию. На самом деле я получаю ошибку с помощью этой команды:
+ $files.ForEach({Set-ProcessMitigation -Disable ForceRelocateImages})
+ ~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Set-ProcessMitigation:String) [
], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Кроме того, я бы предпочел некоторое общее описание для пользователей cygwin, например: cd / bin, затем запустите там powershell (winpty powershell или cygstart powershell), $ files = (Get-ChildItem ‘* .exe’). FullName, а потом, ну, кое-что, что работает. Кроме того, немного сложно проверить, не будучи знакомым с PowerShell; echo $ files работает, но что-нибудь вроде $ files.foreach ({echo}) кажется подделкой …
@mintty
Прости за это!…
Думаю, я что-то напортачил при копировании кода из «PowerShell» сюда …
(Здесь было довольно поздно) (и это так, еще раз … -_- ;; …) РЕДАКТИРОВАТЬ — это было около _5:30 утра_ здесь …
Я отредактировал этот комментарий, чтобы исправить это -> отсутствовал параметр « $_
» …
(актуально и весьма важно в этом методе » String[].ForEach({})
» …)
(Существует также удаленная вероятность того, что «Модуль ProcessMitigations
» _PowerShell_ «отсутствует … И поскольку он входит в состав соответствующих версий Windows, это будет означать, что здесь нет» _Здесь нечего делать_ «с» PowerShell » и это может быть вызвано аналогичной функциональностью «_Security Suites_» других компаний …)
Об остальном, о чем Вы говорили:
Поскольку я опирался на предыдущий комментарий к «_Shorten_», используемые команды и удаление ненужных смягчений были отключены, как я объяснял там (и занимал больше времени при этом для каждого файла), я не думал об этом там …
Что касается информации для пользователей «_cygwin_» …
Проблема этого _Issue_ (# 6), как правило, НЕ в возможности даже запустить терминал и вместо этого получить то ужасное «
Error: could not fork child process: Resource temporarily unavailable (-1).
DLL rebasing may be required. See 'rebaseall / rebase --help
» сообщение…
Кстати: (и просто к вашему сведению)
Я не хотел прикасаться к _ PowerShell _ каким-либо полюсом любой длины раньше (тоже), потому что это означало бы, что мне нужно было бы выучить «_New_» язык программирования …
Я только углубился в «_PowerShell_», потому что не было другого разумного способа добавить ВСЕ эти «.exe» в элемент управления эксплойтами и определить их переопределения! (Было бы «БЕЗУМИЕ !!!» добавить одно за другим и настроить его переопределение смягчения последствий, а также одно за другим …)
И из того, что я узнал о « PowerShell » за последние 2 дня (что, примечание: это было целое _LOT_!), Представляет собой «_Weird Mix_» из _ частей _ обычных Windows CMD , Linux BASH и C # + .Net Core (подраздел _.Net Framework _) !!! …
Специально для скриптов !.
Я также отредактировал это в другом сообщении, но для того, чтобы вы видели это прямо в своих уведомлениях / электронных письмах GutHub, я также помещу их сюда:
MSys64 — Путь по умолчанию .ps1.txt
Git для 64-разрядной версии Windows — путь по умолчанию .ps1.txt
Это автоматизированные сценарии « дважды щелкнуть _» / выполнить !. (одно лишь небольшое изменение другого …)
Они довольно хорошо документированы, начиная с пошаговых предупреждений и сообщений о состоянии во время выполнения и «_Pauses_» и заканчивая комментариями к коду, объясняющими, что делает код !. (За исключением раздела Кодекса «_Admin Self-Elevation Prompt_» — потому что эту часть просто трудно объяснить, но не так сложно ее понять …
По природе / _архитектуре_ этих «_ сценариев PowerShell _» они могут быть выполнены «_ в любом месте _».
Но спасибо за _Странные ограничения_ в системе _Comment File Upload_ этого GitHub, .txt
» ДОЛЖНО быть сначала удалено из имени файла, чтобы оно заканчивалось расширением » .ps1
» …
_Script_ требуется переменная (» $installPath
«) в верхней части _Script-файла_ для редактирования, чтобы она указывала вправо на «_Root Installation Path_».
Остальное автоматически.
Если он запускается в уже _Elevated / Administrator PowerShell_ (вызывается _Wither_ из _Wherever_), он будет выполняться сразу с небольшими сообщениями о состоянии или без них. (» Set-ProcessMitigation
» «_cmdlet_», как они их называют, ничего не _Print_, если только это _Errors _…)
Если нет, он сам _Relaunch_ сам запрашивает разрешение _Elevation_ для администратора (через обычную «_Windows UAC Prompt_»), в то время как ранее сообщая пользователю, что он _WILL DO SO_ и _Warning_ User, чтобы ВСЕГДА убедиться в том, что они пропускают через «_Windows UAC Prompts_» и ожидание, пока они прочитают это и подтвердят это, прежде чем перейти к _Relaunch_ Правильному … (попросив их «нажать Enter, чтобы продолжить …» типа вещей — стиль _Windows CMD_ «_Pause_»)
В любом случае, он всегда будет ждать, пока пользователь не «_Press Enter_» непосредственно перед «_Exiting_» в конце, чтобы все можно было прочитать, даже если оно было изначально запущено _ двойным щелчком (обычно окно закрывается само в этих случаях…)
Эти «_PowerShell Scripts_» должны, надеюсь, помочь автоматизировать этот ужасный процесс массового добавления правил / исключений предотвращения уязвимостей …
(И, возможно, даже создать «_Template_» для других проектов с проблемными программными конфликтами с помощью средств защиты от эксплойтов … Кто знает? …)
Для дальнейшей _ автоматизации _, я предполагаю, что скрипт может быть лишен «_Вручную вставленные сообщения о состоянии / предупреждения_» и «_Pauses_» («Нажмите Enter, чтобы продолжить …») и, если гарантировано, всегда будет работать в _Admin Elevated Environment_, его также можно удалить из раздела «_Admin Self-Elevation Prompt_» _Script _…
В любом случае…
Просто к вашему сведению:
- »
powershell.exe
» лучше для запуска скрипта - »
powershell_ise.exe
» лучше подходит для редактирования сценария / разработки в «_ PowerShell _»
Я посмотрю, смогу ли я сейчас поспать 4 часа или что-то в этом роде … DX
Сейчас _7: 20 утра_ СЕЙЧАС! …
Я даже случайно нажал SHIFT + ENTER
и он отправил комментарий до того, как был готов …
Я работал над этим «ВСЮ ночь напролет» … -_- zZzZzZ
И оно показывает!_…
С наилучшими пожеланиями из Португалии !. (это не похоже на то, что я это скрываю … Это прямо в моем профиле …)
C Ya L8r тогда !. ;П
Жоао Педро Кунья
(AKA TheBest_F-22 !. )
Мой компьютер был обновлен до Windows 10 версии 1803 17134.254 за выходные.
Я использую MSYS2 и сразу заметил, что при взаимодействии этой формы в командной строке возникают проблемы:
$ скрипт | Кот
где ‘скрипт’ может быть таким простым, как:
#! / bin / bash
файл кошки
Другими словами, сценарий вызывает подпроцесс, который производит стандартный вывод, который затем передается другой команде. Ошибка — это зависание и, в конечном итоге, «fork: retry: ресурс временно недоступен».
Оболочка, в которой возникает эта проблема, вызывается непосредственно из ярлыка на рабочем столе, например:
s: msys64usrbinbash.exe —login -i -s 000
Я еще не решил проблему и до сих пор изучал такие проблемы, как ASLR и рандомизация, ребазирование и так далее. У меня нет четкого представления о том, в чем заключается основная проблема, и я не хочу отказываться от нее.
В последнем случае mintty даже не задействован (запуск bash напрямую с ярлыка)! Даже если бы это было так, это не было бы проблемой, если бы это произошло внутри оболочки.
@mintty https://github.com/mintty
Помог ли мой последний комментарий (эта ГИГАНСКАЯ стена текста )? …
(Мне просто любопытно / спрашиваю, потому что я не видел реакции от Тебя …
Прости за это…)
Я очень устал и даже отправил его до того, как закончил, потому что я (в то время как
в полусне) нажал ENTER перед тем, как отпустить клавишу SHIFT …
Затем я закончил его и сделал много РЕДАКТИРОВАНИЯ / исправлений, связанных с QC / QA, некоторые
сомнительных процессов принятия решений (я был слишком сонным), например,
Часы, когда я начал писать сообщения и когда я его закончил …
Такие вещи…
Вы, вероятно, должны заметить, что это не то же самое, что
электронное письмо / уведомление, которое вы получили ранее, если прочитали его непосредственно на
Страница проблемы GitHub …
Я также должен отметить, что 2 строки (теперь исправленные и работающие) из моего
Начальный комментарий — это все, что мне нужно для личного использования. (поскольку » я знаю чтоЯ делаю «…)
Я только написал, что более сложный и продвинутый сценарий для «образовательных
целей «и чтобы любой мог просто» дважды щелкнуть «файл, подтвердить
запрос о повышении уровня администратора (UAC) и просто сделайте с ним и получите
все для работы …
Возможно, эти 2 строки можно было бы добавить в Run на последних шагах
установка после быстрой проверки и информативной подсказки для пользователя? …
В моем случае я использовал « Обозреватель процессов » при создании нового « Git дляWindows «Upgrade и заметил, что в конце концов запускается некоторая финальная настройка.
скрипты в дереве Linux-Original-процессов (bash / ln / rm / MinTTY / ls / …)
которые продолжают сбой, и только после того, как я действительно попытался протестировать / использовать его,
я нашел / столкнулся с этой проблемой (# 6) (и сделал это » исправление » / обходной путь)
…
В любом случае…
То, что сказал
та же проблема — те / usr / bin » .exe » s / binaries и Windows Exploit
настройки защиты …
Эта проблема (№6) на GitHub просто ОЧЕНЬ находится в верхней части (если
не самая первая запись — может отличаться в зависимости от страны) Поиска Google для
это « Сообщение об ошибке » (которое также есть в теме / названии проблемы
сам) …
(У него, вероятно, даже есть двоичный файл MinTTY где-то в той же папке …)
(Возможно, хороший способ проверить мой скрипт? … — Хотя ему это нужно
Ручное редактирование переменной …)
PS: Я пишу это по электронной почте, чтобы проверить ответ этого GitHub.
Функциональность и посмотрим, как это будет …
(Мне может потребоваться перейти на сам GitHub, чтобы исправить это, если он
не выходит, как ожидалось … Я посмотрю, я думаю …)
Ну тогда пока.
В пн, 10 сентября 2018 г., 23:19 mintty [email protected] написал:
В последнем случае mintty даже не задействован (запуск bash напрямую
с ярлыка)! Даже если бы это было так, это не было бы проблемой, если бы
происходит внутри оболочки.—
Вы получили это, потому что прокомментировали.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/mintty/wsltty/issues/6#issuecomment-420080252 или отключить звук
нить
https://github.com/notifications/unsubscribe-auth/AMf68mO5P8ybzQcy7nYG3rvZ1ZxVx94Sks5uZuVhgaJpZM4KKkOP
.
Я ценю ваш сценарий и дополнительные пояснения для всех, кто интересуется предысторией. У меня сейчас нет возможности полностью изучить его. Если вы хотите внести свой вклад, было бы замечательно следующее:
- (как я обрисовал в своем предыдущем ответе вам) более общий сценарий, который можно запустить из любого из cygwin, msys, git-for-windows, независимо от того, где он установлен
- поскольку команда все еще не запускается для меня после исправления $ _, а обязательный ASLR отключен в моей Windows, что может быть связано, некоторая обработка ошибок в сценарии, который обрабатывает это с правильным сообщением
- может быть, конфигурация ASLR доступна в Windows API? Если вы найдете такую информацию, кто-нибудь может сделать небольшой инструмент, независимый от тяжелого Powershell.
- может быть, вы или я могли бы сообщить об этом решении в список рассылки cygwin
Поскольку я написал пару дней назад, я хотел бы сделать продолжение, даже если проблема, похоже, не связана с mintty.
Я сгенерировал пару нулевых программ на C, в каждой из которых был такой код:
int main () {return 0;}
Это np1 и np2.
Я вставляю первое в скрипт:
! / bin / bash
np1
выход 0
а затем запустите сценарий и вторую программу, используя канал:
сценарий | np2
Иногда это срабатывает, но обычно зависает, с драматическим изменением в Windows 10 версии 1803. Скрипт и конвейер кажутся необходимыми. Программы не выполняют операций ввода-вывода, поэтому канал фактически не используется.
Я много чего пробовал, включая peflags / rebase, безуспешно. Одна вещь, которая, похоже, действительно работает, — это запустить оболочку верхнего уровня от имени администратора. Я не знаю, почему это работает, но это должно быть большим намеком для кого-то, кто более проницателен, чем я, в работе Cygwin и Msys.
Другой подход, который кажется работающим, — это изменить первую строку скрипта на это:
! / bin / bash
Дополнительный символ «#» превращает первую строку в комментарий, и, таким образом, оболочка вызывает стандартный инструмент, например / bin / bash или / bin / sh, для интерпретации команд сценария. Это концептуально похоже на «#!» обозначение, но предположительно обрабатывается несколько иначе.
Для всех, кто приезжает сюда после попытки установить git для Windows под Win10 amd64: Я использую все средства защиты от эксплойтов, а также полные политики ограниченного использования программ. Похоже, в mingw64 есть какая-то ошибка, и мне пришлось явно добавить путь «C: Program FilesGit *» в SRP и установить для него неограниченный. Возможно, установщик использует какой-то нестандартный способ указания путей к файлам.
Итак, чтобы установить git без включения защиты от эксплойтов и перезагрузки, сначала выполните установку, и она завершится неудачно после копирования всех (большинства?) Файлов. Затем запустите приведенные выше сценарии PowerShell, чтобы отключить aslr для двоичных файлов git. Теперь снова установите git в ту же папку, и он скажет, что не смог удалить предыдущую установку. Продолжайте, и после того, как установка начнет установку файлов, вы измените «C: Program FilesGit *» на «Unrestricted». Таким образом, в конце процесса установки git.exe сможет выполнять такие действия, как изменение редактора по умолчанию.
Исправление Avast:
Перейдите в интерфейс Avast -> настройки -> общие -> исключения -> добавьте директорию папки, в которой находится ваш «git-bash.exe».
Для меня это был демон оболочки ADB, запущенный после одной команды в терминале.
Как насчет того, чтобы исправить приложение, чтобы оно работало с защитой от эксплойтов?
Была ли эта страница полезной?
0 / 5 — 0 рейтинги
У меня было до 8 терминалов git bash, работающих одновременно.
В настоящее время у меня только 2 вверх.
Я не видел эту ошибку раньше, и я не понимаю, что является причиной этого.
Любая помощь будет оценена!
Картинка прилагается:
Ответы:
Нашел похожую проблему и решение в группах Google
Я открыл командную строку Windows и запустил команду
$ tasklist
Похоже, что ssh-соединения, которые я установил в своих оболочках git bash, не были закрыты, когда эти окна были закрыты, и висели доступные окна оболочки git bash.
Это может быть опасным решением, но из командной строки Windows я запустил
$ taskkill /F /IM ssh.exe
После этого все снова работает. Возможно, это напрямую не было проблемой бесхозных процессов, но это работало, по крайней мере, для меня.
Дополнительное примечание: вы также можете убить другие процессы, например:
$ taskkill /F /IM vim.exe
Я вижу проблему с окнами в git bash, когда убиваю консоль git bash, не используя выход. Я нашел убийство ssh-agent.exe из диспетчера задач Windows, чтобы решить эту проблему.
В моем случае это было связано с использованием кода VS. Ранее я открыл код VS с помощью терминала git bash и выполнил
code .
затем закрытие терминала.
Проблема решается путем закрытия всех открытых окон кода VS.
Если у вас есть какой-либо редактор или IDE, настроенный для открытия терминала как git bash, то когда IDE / IDE работает, git bash будет раскручивать bash из «C: Windows System32 bash.exe» и любые другие попытки открытие bash из отдельного окна может привести к сбою.
Лучшее решение — убить панель IDE / Editor и открыть ее из нового окна или продолжить с помощью команды IDE / Editor.
Я обращаюсь к этому с обходным путем:
- Закройте окно Git Bash.
- Откройте диспетчер задач.
- Найдите процесс Git для Windows.
- Убей это.
- Откройте Git Bash.
Теперь все должно быть в порядке.
Чтобы облегчить жизнь (такие проблемы случаются довольно часто), создайте файл с именем fixbash.bat
в домашнем каталоге и вставьте его:
taskkill /F /IM ssh-agent.exe
Когда проблема возникает, просто откройте cmd
и введите, fixbash.bat
чтобы решить проблему.
Или
Просто вставьте команду taskkill в вашу, cmd
если вы не хотите создавать скрипт.
Перезагрузите машину.
(Другие ответы у меня не сработали. (Я не пробовал переустанавливать. Вероятно, перезапуск быстрее).)
Для меня (или кто работает транспортир, который может раскрутить автономный Селен / WebDriver сервера), мне нужно taskkill
в конкретной WebDriver , который работает мои тесты.
Так что просто другой аргумент: или ваша версия chromedriver может отличаться
taskkill /f /im chromedriver_2.34.exe
Обратите внимание, что ваш драйвер может отличаться:
IEDriverServer*.*.*.exe
противchromedriver_*.**exe
Ваш водитель может версия может меняться: chromedriver_2.34.exe
противchromedriver_2.33.exe
Эта проблема усугубилась после того, как транспортир вышел из системы, не закрыв браузер с автоматическим / тестовым управлением (из-за отдельной проблемы, которую я пока не понимаю). Естественно, многие chromedriver
задачи остаются запущенными, поэтому убивают их.
Откройте диспетчер задач и убейте процесс с именем bash, у меня это сработало.
Это происходит при выходе из git bash без прекращения существующего процесса. Просто попробуйте убить те процессы, которые вы начали с git bash. Я запускал процесс узла внутри git bash, поэтому я убил все процессы узла
- Открыть диспетчер задач
- Перейти к вкладке «Сведения»
- Ищите node.exe (вы ищите свои процессы)
- Убей это каждый процесс узла
- Снова откройте Git Bash
наконец-то выяснили, что это вызвало.
если мы используем такой код (явно или неявно), т.е. в .bashrc
файле
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa
это порождает новый процесс.
Если вы не выходите из него и просто закрываете окно, этот процесс все еще выполняется. поэтому каждый новый открытый bash просто продолжает добавлять новые без утилизации старых.
когда закончите с окном bash, просто нажмите ctrl+d
или введите, exit
чтобы убить процесс агента, и у вас не должно быть разветвлений.
Кажется, проблема действительно связана с процессами, запускаемыми из git bash, как @mamacdon, предложенный в комментарии к главному ответу @Scott Newson.
Для меня проблема появилась, если я запустил vscode из bash с code
, и если этот экземпляр vscode запустил интегрированный терминал git, когда исходный bash еще работал.
Неважно, был ли этот терминал запущен в начале или позже, если он был в то время, когда оригинальный bash еще работал.
Не произошло, когда bash был закрыт до открытия интегрированного терминала. Не различатьexit
закрытием bash через окна. Не случилось с другим старым окном bash, все еще работающим.
Для меня было возможно закрыть терминалы в vscode с помощью exit
или «Kill Terminal» (будьте осторожны, чтобы не перепутать это с «закрыть панель»), или, конечно, закрыть сам vscode.
Если вы получили эту ошибку, попробуйте вспомнить, что вы запустили из bash, и убейте ее. Если другие ответы сработали для вас, возможно, это просто вещи, запущенные вашим bash или запущенные процессами, которые вы запустили из bash, и они каким-то образом стали потомками вашего исходного bash.
Если вы используете код Visual Studio и не можете найти ssh-agent.exe или не можете выполнить задачу, и после открытия Git Bash вы получаете эту ошибку, просто перейдите в VSCode, откройте «Терминал»> «Новый терминал» и просто нажмите значок корзины. (Убить Терминал). например (1: bash), если у вас есть несколько, просто убейте их всех, и вы должны быть хорошими.
В моем случае мне нужно убить Git Bash в Windows. Так открыл командную строку и запустил ниже команды
$ tasklist
В нем будут перечислены все запущенные задачи, затем необходимо убить задачу bash.exe, используя следующую команду
$ taskkill /F /IM bash.exe
Откройте диспетчер задач, найдите «sh» и убейте их. Удачи
В моем случае решением было закрыть код Visual Studio — там, где у меня тоже была консоль, не замечая —
После закрытия все возвращается на круги своя. Надеюсь, это кому-нибудь поможет.
Я попытался убить все мои git-терминалы в диспетчере задач, решает проблему. Это работает и для меня. удачи.
В более поздней версии git для windows процесс, который нужно было убить в диспетчере задач, был «GitExtensions.exe». Убил это и терминалы перезапустились без проблем.
Найдите процесс ssh-agent в окне диспетчера задач. После того, как вы остановите или убьете процесс ssh-agent, ошибка исчезнет.
В моем случае я запустил код Visual Studio и закрыл его, что решило проблему.
Переустановил мерзавец, теперь работает нормально.
я обнаружил, что убийство терминала msys2 в диспетчере задач решает проблему
Откройте диспетчер задач, найдите процесс bash.exe и убейте его. Помогло в моем случае.
Windows 10 это работало для меня:
1) открыть cmd от имени администратора
2) тип:
taskkill /f /im git-bash.exe
3) Если произошла ошибка: процесс «ssh-agent.exe» не найден. затем:
тип:
tasklist
4) Найдите и уничтожьте каждый процесс словами «bash» или «git» (это может быть опасным решением, но как только вы найдете имя процесса, в следующий раз вы узнаете.)
taskkill /f /im ***.exe
Для windows, в диспетчере задач убей sh.exe.
В моем случае у меня был запущенный файл abd.exe, который все еще был открыт в диспетчере задач. Убийство решило проблему.
В системе Bash тип:
ps
Убить любой плохо выглядящий процесс:
kill -9 <ID>
Работал на меня.
Просто перезагрузите свою машину, пока перезагрузите нашу машину, эта проблема решена попробуйте.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.