Git bash Помилка: Не вдалося розблокувати дочірній процес: Немає доступних терміналів (-1)


191

У мене було одночасно до 8 терміналів, що працюють на базі.

На даний момент у мене тільки 2.

Я раніше не бачив цієї помилки і не розумію, що її викликає.

Будь-яка допомога буде вдячна!

Зображення додається:

введіть тут опис зображення


10
процес вбивства баш працював на мене.
bfranzen

36
-1 до всіх поточних відповідей. Всі варіанти "просто вбити термінал і запустити знову". У чому полягає основна проблема? Чому я не можу мати 100 терміналів?
RJFalconer

32
У мене була ця проблема для такого довгого часу і ніколи не був в змозі дістатися до нижньої частини цього. Здається, це програми, які залишаються відкритими, які можуть призвести до того, що деякі ручки залишаються відкритими, але в моєму випадку баш-процеси закриваються, а навколо ssh-процесів немає (я використовую mosh). Я щойно змогла повторити цю проблему, запустивши vscode за допомогою, vscode .а потім закривши термінал, який використовується для його відкриття. Хоча вікно vscode залишається відкритим, схоже, Cygwin не хоче відкривати більше терміналів, як тільки я закриваю, це працює.
Elven Spellmaker

25
@ElvenSpellmaker ви праві, це стосується і code .мого випадку.
Білал Хокхі

15
Тільки задля підтвердження: сьогодні я зіткнувся з проблемою, був пов'язаний з code .моєю справою. Закриття коду VS усунуло проблему. Чудова знахідка @ElvenSpellmaker
kb.

Відповіді:


83

Знайшов подібне питання та рішення в групах google

Я відкрив командний рядок Windows і запустив команду

$ tasklist

Схоже, що ssh-з'єднання, яке я зробив у своїх гіт-баш-корпусах, не закривалося, коли ці вікна були закриті, і вішали доступні вікна оболонки git bash.

Це може бути небезпечним рішенням, але з командного рядка Windows я побіг

$ taskkill /F /IM ssh.exe 

Здається, все після цього знову працює. Це, можливо, безпосередньо не було проблемою сирітських процесів, але це працювало принаймні для мене.

Додаткова примітка: ви також можете вбивати інші процеси, наприклад:

$ taskkill /F /IM vim.exe

6
Ця процедура спрацювала, хоча в моєму випадку винуватцями були node.exe(Node.js) та link.exe(посилання GNU). Тож вам, можливо, доведеться переслідувати список завдань для винних процесів. Я не впевнений, чому, але, схоже, програми, запущені зсередини сеансів Bash, можуть якось пережити свою батьківську оболонку.
mamacdon

1
Дякую Скотт, ця процедура працювала, як згадував @mamacdon, навіть у моєму випадку винуватцями був node.exe.
S52

21
Для мене мені довелося виконати "taskkill / F / IM ssh-agent.exe", але достатньо близько для голосування.
Ділан Капп

12
Мені довелося вбити node.exe з командоюtaskkill /F /IM node.exe
Таратор

1
У моєму випадку (із Cygwin) це все ще працював один adb.exe. Вбивство це вирішило.
Дієго Андраде

58

Я бачу проблему на windows у git bash, коли я вбиваю консоль git bash без використання виходу. Я виявив, що вбив завдання ssh-agent.exe з менеджера завдань Windows, щоб виправити проблему.


4
Це спрацювало спочатку. Тепер я все ще отримую це, навіть після вбивства ssh-agent.exe.
Лев

1
це короткострокове рішення. проблема з часом повертається. сподіваючись, що існує більш постійний спосіб виправити це питання
Sonic Soul

1
Я також виявив, що Вузол іноді також залишається запущеним, просто вбивство, яке, здавалося, вирішило проблему для мене.
MusicDev

після вбивства процесу "sh.exe" питання вирішено. Дякую усім.
Маріс

Вбивство "winpty-agent.exe" працювало на мене.
demstair

48

У моєму випадку це було пов'язано із використанням коду VS. Раніше я відкрив код VS за допомогою терміналу git bash та виконання

code .

потім закриваємо термінал.

Проблема вирішується шляхом закриття всіх відкритих вікон коду VS.

Якщо у вас є будь-який редактор або IDE, налаштований відкрити термінал як git bash, тоді, коли IDE / IDE запущений, git bash буде спінірувати bash з "C: \ Windows \ System32 \ bash.exe" та будь-якої іншої спроби відкритий баш з окремого вікна, швидше за все, вийде з ладу.

Найкраще рішення - вбити IDE / Editor bash і відкрити його в новому вікні або продовжити з команди IDE / Editor.


4
Спасибі, це була та сама проблема зі мною
Тарун Нагпал

1
Працював як шарм! Дякую!
jrend

1
Була така ж проблема. Потрібно просто відкрити vs код у cmd.
Річард

Точно така ж проблема. Дякую.
Люсьєн Лу

саме таке питання. Дякую тобі все одно.
амар глибокий

33

Я вирішую це з рішенням:

  1. Закрийте вікно Git Bash.
  2. Відкрити менеджер завдань.
  3. Знайдіть процес "Git for Windows".
  4. Вбий це.
  5. Відкрийте Git Bash.

Зараз має бути нормально.


3
найпростіше рішення. Так прямо.
JkAlombro

2
У моєму випадку у мене був запущений bash.exe і просто його вбити.
Гілберто Альбіно

8

Щоб полегшити життя (подібні проблеми трапляються досить часто), створіть файл, названий fixbash.batу домашньому каталозі, і вставте це:

taskkill /F /IM ssh-agent.exe

Коли проблема виникає, просто відкрийте cmdі введіть, fixbash.batщоб виправити проблему.

Або

Просто вставте команду taskkill у свою, cmdякщо ви не хочете створити сценарій.


2
повертається:ERROR: The process "ssh-agent.exe" not found.
Джессі Реза Хорасані

Це рішення спрацювало на мене. Однак вам потрібно перейти до диспетчера завдань і вбити всіх ssh-agent.exe, оскільки їх може бути багато
Java Main

6

Перезавантажте машину.

(Інші відповіді не спрацювали для мене (я не намагався перевстановити. Перезапуск, мабуть, швидше.))


3
І якщо це не працює, перевстановіть машину або придбайте нову.
john16384

6

Для мене (або хто працює транспортир, який може розкрутити / сервер WebDriver автономного Selenium), мені потрібно taskkillв конкретній WebDriver , який працює мої тести.

Тож просто інший аргумент: або ваша версія хромодрука може відрізнятися

taskkill /f /im chromedriver_2.34.exe

Зверніть увагу, що ваш драйвер може відрізнятися: IEDriverServer*.*.*.exevschromedriver_*.**exe

Ваша версія драйвера може відрізнятися: chromedriver_2.34.exevschromedriver_2.33.exe

Ця проблема загострилася після виходу транспортира, не закриваючи браузер з автоматичним / тестовим керуванням (через окрему проблему я ще не розумію.) Зазвичай багато chromedriverзавдань залишаються запущеними, тому вбивайте їх.


3
Так, це була моя проблема. У мене є сценарій зручності, який використовує Selenium для отримання деяких речей з деяких веб-сайтів, де curl і wget неможливо використовувати через необхідність обробки JavaScript. У будь-якому випадку, як правило, я запускаю це один раз вранці, а іноді він зависає. Я ніколи не робив кореляції з цією помилкою cygwin, поки не побачив цю публікацію, тож ДЯКУЮ! Я збираюся оновити скрипт, який викликає селен, щоб вбити процес chromedriver.exe перед тим, як вийти.
бодеет

6

Відкрити диспетчер завдань і вбити процес з ім'ям bash, це працювало для мене.


6

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

  1. Відкрити диспетчер завдань
  2. Вкладка Goto Details
  3. Шукайте node.exe (ви шукаєте процеси)
  4. Вбийте його кожен процес
  5. Знову відкрийте Git Bash

2
У моєму випадку це було adb shell. Тож я побіг adb kill-serverу вже відкрите вікно, і це зафіксувало це для мене. +1
lucidbrot

Працювали. Але що за чорт ... Я не робив жодного node.js за місяці .... Чому він працював?
JMI MADISON

5

нарешті з'ясував, що це спричиняє.

якщо ми використовуємо такий код (явно або неявно), тобто у .bashrcфайлі

eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa

вона породжує новий процес.

якщо ви не вийдете з нього та просто закриєте вікно, цей процес все ще працює. тож кожен новий баш відкривається просто продовжує додавати нові без викидання старих.

коли це зроблено з вікном bash, просто натисніть ctrl+dабо введіть, exitщоб знищити процес агента, і у вас не повинно закінчуватися виделок.


3

Здається, це проблема з процесами, запущеними з git bash насправді, як @mamacdon запропонував у своєму коментарі до головної відповіді @Scott Newson.

Для мене проблема з’явилася, якщо я запустив vscode з bash з code, і якщо цей екземпляр vscode запустив інтегрований термінал git, поки початковий bash ще працював.

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

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

Спосіб боротьби з цим був для мене, щоб закрити термінали у vscode з exitабо "Убити термінал" (будьте обережні, щоб не змішати це з "закритими панелями"), або, звичайно, закрити сам vscode.

Якщо ви отримаєте цю помилку, спробуйте запам’ятати, що ви запустили з удару, і вбийте її. Якщо інші відповіді спрацювали для вас, це, мабуть, просто, що це речі, запущені вашим bash або запущеними процесами, які ви запустили з bash, і вони якимось чином отримували дитину вашого початкового bash.


3

Якщо ви використовуєте код Visual Studio і не можете знайти ssh-agent.exe або не можете його усунути, і після відкриття Git Bash ви отримаєте цю помилку, просто перейдіть до свого VSCode, відкрийте термінал> Новий термінал і просто натисніть значок кошика термінал (вбити). наприклад (1: bash), якщо у вас є кілька, то просто вбийте їх усіх, і ви повинні бути хорошими.


3

У моєму випадку мені потрібно вбити Git bash в Windows. Так відкрили командний рядок і побігли нижче команди

$ tasklist

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

$ taskkill /F /IM bash.exe 


2

Що стосується мого випадку, рішення було закрити Visual Studio Code - там, де у мене консоль також працювала, не помічаючи-

Після закриття все повернеться до норми. Сподіваюся, що це комусь допоможе.


1

Я намагався вбити всі мої термінали git у менеджері завдань вирішує проблему. Це працює і для мене. Щасти.


1

У новітній версії git для Windows процес вбивства в диспетчері завдань був "GitExtensions.exe". Це вбили, і термінали перезапустили без проблем.


1

Знайдіть процес ssh-agent у вікні диспетчера завдань. Після того, як ви зупините або вб'єте ssh-агент, помилка зникне.


1

У моєму випадку у мене був запущений візуальний код студії, і закриття його вирішило проблему.


1
Не впевнений, чому це стає недооціненим, працював на мене. Також візуальний код студії може мати термінали генерації, тому не дивно, що це може спричинити цю проблему.
Джессі Реза Хорасані



0

Відкрийте диспетчер завдань, знайдіть процес bash.exe і вбийте його. Допоміг у моєму випадку.


0

Windows 10 для мене це працювало:

1) відкрити cmd як адміністратор

2) тип:

taskkill /f /im git-bash.exe


3) Якщо сталася помилка: процес "ssh-agent.exe" не знайдено. тоді:

тип:

tasklist

4) Знайдіть і вбийте кожен процес такими словами, як "bash" або "git" (Це може бути небезпечним рішенням, але як тільки ви знайдете ім'я процесу, наступного разу ви дізнаєтесь.)

taskkill /f /im ***.exe


0

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



-1

Просто перезавантажте свою машину. Під час перезавантаження нашої машини це питання вирішено спробуйте.


4
"Якщо це не спрацює, спробуйте відключити електроживлення до вашої будівлі, а потім підключіть її. Якщо це не працює, спробуйте зателефонувати до місцевої електроенергетичної компанії та попросіть, щоб вони відключили електроенергію на весь мікрорайон на кілька моментів ... тощо "
refaelio

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