Git Bash Fehler: Untergeordneter Prozess konnte nicht gegabelt werden: Es sind keine Terminals verfügbar (-1)


190

Ich hatte bis zu 8 Git Bash Terminals gleichzeitig laufen.

Derzeit habe ich nur 2.

Ich habe diesen Fehler noch nie gesehen und verstehe nicht, was ihn verursacht.

Jede Hilfe wäre dankbar!

Bild beigefügt:

Geben Sie hier die Bildbeschreibung ein


10
Den Bash-Prozess zu beenden hat bei mir funktioniert.
bfranzen

35
-1 zu allen aktuellen Antworten. Alle Variationen von "einfach das Terminal töten und neu starten". Was ist das zugrunde liegende Problem? Warum kann ich nicht 100 Terminals haben?
RJFalconer

31
Ich habe dieses Problem schon so lange und konnte es nie auf den Grund gehen. Es scheinen Anwendungen zu sein, die offen bleiben, was dazu führen kann, dass einige Handles offen bleiben, aber in meinem Fall wurden die Bash-Prozesse geschlossen und es gibt keine SSH-Prozesse (ich verwende mosh). Ich konnte das Problem gerade replizieren, indem ich vscode mit vscode .und zum Schließen des Terminals startete, mit dem es geöffnet wurde. Während das vscode-Fenster geöffnet bleibt, scheint Cygwin keine weiteren Terminals öffnen zu wollen. Sobald ich es schließe, funktioniert es.
Elven Spellmaker

25
@ ElvenSpellmaker du hast recht, das hat auch code .in meinem Fall damit zu tun .
Bilal Khoukhi

15
Nur zur Bestätigung: Heute auf das Problem gestoßen, lag auch an code .meinem Fall. Durch Schließen von VS Code wurde das Problem behoben. Toller Fund @ElvenSpellmaker
kb.

Antworten:


83

In Google Groups wurde ein ähnliches Problem und eine ähnliche Lösung gefunden

Ich habe eine Windows-Eingabeaufforderung geöffnet und den Befehl ausgeführt

$ tasklist

Es sieht so aus, als ob die SSH-Verbindungen, die ich in meinen Git-Bash-Shells hergestellt hatte, nicht geschlossen wurden, als diese Fenster geschlossen waren und die verfügbaren Git-Bash-Shell-Fenster hingen.

Dies mag eine gefährliche Lösung sein, aber über die Windows-Eingabeaufforderung habe ich ausgeführt

$ taskkill /F /IM ssh.exe 

Danach scheint alles wieder zu funktionieren. Es war vielleicht nicht direkt ein Problem von verwaisten Prozessen, aber das hat zumindest für mich funktioniert.

Zusätzlicher Hinweis: Sie können auch andere Prozesse beenden, z. B.:

$ taskkill /F /IM vim.exe

6
Dieses Verfahren hat funktioniert, obwohl in meinem Fall die Schuldigen node.exe(Node.js) und link.exe(GNU-Link) waren. Möglicherweise müssen Sie also die Aufgabenliste nach den Schuldprozessen durchsuchen. Ich bin mir nicht sicher warum, aber es scheint, dass Programme, die aus Bash-Sitzungen heraus gestartet werden, ihre übergeordnete Shell irgendwie überleben können.
Mamacdon

1
Vielen Dank, Scott. Dieses Verfahren hat wie von @mamacdon erwähnt funktioniert, auch wenn in meinem Fall die Schuldigen node.exe waren.
S52

21
Für mich musste ich "taskkill / F / IM ssh-agent.exe" ausführen, aber nah genug für eine Abstimmung.
Dylan Kapp

12
Ich musste node.exe mit dem Befehltaskkill /F /IM node.exe
Tarator

1
In meinem Fall (mit Cygwin) war es eine einzelne adb.exe, die noch lief. Töten gelöst.
Diego Andrade

58

Ich sehe das Problem unter Windows in Git Bash, wenn ich meine Git Bash-Konsole ohne Exit töte. Ich habe festgestellt, dass die Aufgabe ssh-agent.exe im Windows Task-Manager beendet wurde, um das Problem zu beheben.


4
Dies funktionierte zunächst. Jetzt verstehe ich es immer noch, auch nachdem ich ssh-agent.exe getötet habe.
Leo

1
Dies ist eine kurzfristige Lösung. Das Problem kehrt schließlich zurück. Ich hoffe, es gibt einen dauerhafteren Weg, um dieses Problem zu beheben
Sonic Soul

1
Ich fand auch heraus, dass Node manchmal auch am Laufen bleibt, nur das Töten schien das Problem für mich zu lösen.
MusicDev

Nach dem Beenden des Prozesses "sh.exe" wurde das Problem behoben. Vielen Dank an alle.
Maris

Das Töten von "winpty-agent.exe" hat bei mir funktioniert.
Demstair

46

In meinem Fall war es mit der Verwendung von VS-Code verbunden. Zuvor habe ich VS-Code mit einem Git-Bash-Terminal geöffnet und ausgeführt

code .

dann das Terminal schließen.

Das Problem wird gelöst, indem alle geöffneten VS-Codefenster geschlossen werden.

Wenn Sie einen Editor oder eine IDE so konfiguriert haben, dass ein Terminal als Git-Bash geöffnet wird, wird bei Ausführung der IDE / IDE die Git-Bash von "C: \ Windows \ System32 \ bash.exe" und jedem anderen Versuch gestartet Open Bash aus einem separaten Fenster kann abstürzen.

Die beste Lösung besteht darin, die IDE / Editor-Bash zu beenden und in einem neuen Fenster zu öffnen oder mit dem Befehl IDE / Editor fortzufahren.


4
Danke, es war das gleiche Problem mit mir
Tarun Nagpal

1
Lief wie am Schnürchen! Vielen Dank!
jrend

1
Hatte das gleiche Problem. Sollte nur vs Code in cmd öffnen.
Richard

Genau das gleiche Problem. Vielen Dank.
Lucien Lu

genau das gleiche Problem. Trotzdem Danke.
Amar Deep

33

Ich spreche dies mit einer Problemumgehung an:

  1. Schließen Sie das Git Bash-Fenster.
  2. Öffnen Sie den Task-Manager.
  3. Suchen Sie den Prozess "Git für Windows".
  4. Töte es.
  5. Öffnen Sie Git Bash.

Es sollte jetzt in Ordnung sein.


3
einfachste Lösung. So einfach.
JkAlombro

2
In meinem Fall hatte ich bash.exe ausgeführt und töte es einfach.
Gilberto Albino

8

Um das Leben zu erleichtern (dieses Problem tritt häufig auf), erstellen Sie eine Datei, die fixbash.batim Home-Verzeichnis aufgerufen wird, und fügen Sie Folgendes ein:

taskkill /F /IM ssh-agent.exe

Wenn ein Problem auftritt, öffnen Sie es cmdund geben Sie es ein fixbash.bat, um ein Problem zu beheben.

Oder

Fügen cmdSie einfach den Befehl taskkill in Ihren ein, wenn Sie kein Skript erstellen möchten.


2
Rückkehr:ERROR: The process "ssh-agent.exe" not found.
Jesse Reza Khorasanee

Diese Lösung hat bei mir funktioniert. Sie müssen jedoch zum Task-Manager gehen und alle ssh-agent.exe beenden, da es viele geben kann
Java Main

6

Starten Sie Ihren Computer neu.

(Die anderen Antworten haben bei mir nicht funktioniert. (Ich habe nicht versucht, sie neu zu installieren. Der Neustart ist wahrscheinlich schneller.))


3
Und wenn das nicht funktioniert, installieren Sie Ihre Maschine neu oder kaufen Sie eine neue.
John16384

6

Für mich (oder jeden, der Winkelmesser ausführt , der möglicherweise einen eigenständigen Selenium / WebDriver-Server hochfährt ), musste ich taskkillden spezifischen Web-Treiber verwenden dem meine Tests ausgeführt wurden.

Also nur ein anderes Argument: oder Ihre Chromedriver- Version kann variieren

taskkill /f /im chromedriver_2.34.exe

Beachten Sie, dass Ihr Fahrer variieren kann: IEDriverServer*.*.*.exevs.chromedriver_*.**exe

Ihr Fahrer kann Version kann unterschiedlich sein : chromedriver_2.34.exevschromedriver_2.33.exe

Dieses Problem wurde schlimmer, nachdem der Winkelmesser beendet wurde, ohne den automatisierten / testgesteuerten Browser zu schließen (aufgrund eines separaten Problems, das ich noch nicht verstehe). Natürlich werden noch viele chromedriverAufgaben ausgeführt, weshalb sie getötet werden.


3
Ja, das war mein Problem. Ich habe ein Convenience-Skript, das Selenium verwendet, um einige Inhalte von Websites abzurufen, auf denen Curl und Wget nicht verwendet werden können, da JavaScript verarbeitet werden muss. Wie auch immer, ich laufe das normalerweise einmal am Morgen und manchmal wird es aufgehängt. Ich habe die Korrelation mit diesem Cygwin-Fehler erst hergestellt, als ich diesen Beitrag gesehen habe. DANKE! Ich werde das Skript aktualisieren, das Selen aufruft, um den Prozess chromedriver.exe vor dem Beenden zu beenden.
Beaudet

6

Öffnen Sie den Task-Manager und beenden Sie den Prozess mit Name Bash. Dies hat bei mir funktioniert.


6

Dies geschieht, wenn Sie git bash beenden, ohne den vorhandenen Prozess zu beenden. Versuchen Sie einfach, die Prozesse zu beenden, die Sie mit git bash gestartet haben. Ich habe den Knotenprozess in Git Bash ausgeführt, also habe ich alle Knotenprozesse beendet. Schritte zum Beenden

  1. Öffnen Sie den Task-Manager
  2. Gehe zu Registerkarte Details
  3. Suchen Sie nach node.exe (Sie suchen nach Ihren Prozessen)
  4. Töte jeden Knotenprozess
  5. Öffnen Sie Git Bash erneut

2
In meinem Fall war es adb shell. Also bin ich adb kill-serverin ein bereits offenes Fenster gelaufen und es hat das für mich behoben. +1
Lucidbrot

Hat funktioniert. Aber was zum Teufel ... Ich habe seit Monaten keine node.js mehr gemacht ... Warum lief es?
JMI MADISON

5

Endlich herausgefunden, was das verursacht hat.

wenn wir Code wie diesen (explizit oder implizit) verwenden, dh in einer .bashrcDatei

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

es erzeugt einen neuen Prozess.

Wenn Sie es nicht beenden und nur das Fenster schließen, wird dieser Prozess noch ausgeführt. Also fügt jede neue Bash immer wieder neue hinzu, ohne alte zu entsorgen.

Wenn Sie mit einem Bash-Fenster fertig sind, drücken ctrl+doder tippen Sie einfach exit, um den Agentenprozess abzubrechen, und Ihnen sollten nicht die Gabeln ausgehen.


3

Scheint tatsächlich ein Problem mit den Prozessen zu sein, die von der Git-Bash gestartet wurden, wie @mamacdon in seinem Kommentar zur Top-Antwort von @Scott Newson vorgeschlagen hat.

Für mich trat das Problem auf, wenn ich einen vscode von der Bash mit codestartete und wenn diese Instanz von vscode ein integriertes Git-Terminal startete, während die ursprüngliche Bash noch lief.

Es spielt keine Rolle, ob dieses Terminal zu Beginn oder später gestartet wurde, solange es noch lief, während die ursprüngliche Bash lief.

Ist nicht passiert, als die Bash geschlossen wurde, bevor das integrierte Terminal geöffnet wurde. Es wurde nicht zwischen exitBash und Windows unterschieden. Ist nicht passiert, wenn ein anderes älteres Bash-Fenster noch läuft.

Die Art und Weise, wie ich damit umgehen sollte, bestand darin, die Terminals in vscode mit exitoder 'Kill Terminal' zu schließen (achten Sie darauf, dies nicht mit 'close pane' zu verwechseln) oder natürlich vscode selbst zu schließen.

Wenn Sie diesen Fehler erhalten, versuchen Sie sich zu merken, was Sie von der Bash gestartet haben, und töten Sie ihn. Wenn die anderen Antworten für Sie funktionierten, ist es wahrscheinlich nur so, dass dies die Dinge sind, die von Ihrer Bash oder von Prozessen, die Sie von der Bash gestartet haben, gestartet wurden und die irgendwie ein Kind Ihrer ursprünglichen Bash bekommen haben.


3

Wenn Sie Visual Studio Code verwenden und ssh-agent.exe nicht finden oder nicht ausführen können und nach dem Öffnen von Git Bash diese Fehlermeldung angezeigt wird, gehen Sie einfach zu Ihrem VSCode, öffnen Sie Terminal> Neues Terminal und drücken Sie einfach auf das Papierkorbsymbol das (Kill Terminal). zB (1: Bash) Wenn du mehrere hast, töte sie einfach alle und du solltest gut sein.


3

In meinem Fall muss ich Git Bash in Windows beenden. Also öffnete Eingabeaufforderung und lief unter Befehl

$ tasklist

Es werden alle laufenden Aufgaben aufgelistet und müssen dann die Aufgabe bash.exe mit dem folgenden Befehl beenden

$ taskkill /F /IM bash.exe 

2

Öffnen Sie Ihren Task-Manager, suchen Sie nach "sh" -Prozessen und töten Sie sie. Viel Glück


2

In meinem Fall bestand die Lösung darin, Visual Studio Code zu schließen - wo auch die Konsole lief, ohne es zu merken -

Nach dem Schließen alles wieder normal. Hoffe das hilft jemandem.


1

Ich habe versucht, alle meine Git-Terminals im Task-Manager zu töten, um das Problem zu lösen. Das funktioniert auch bei mir. Viel Glück.


1

In einer neueren Version von git für Windows war der im Task-Manager zu beendende Prozess "GitExtensions.exe". Das wurde getötet und die Terminals wurden ohne Probleme neu gestartet.


1

Den ssh-agent-Prozess finden Sie im Task-Manager-Fenster. Nachdem Sie den ssh-agent-Prozess gestoppt oder beendet haben, verschwindet der Fehler.


1

In meinem Fall wurde Visual Studio-Code ausgeführt und durch Schließen wurde das Problem behoben.


1
Ich bin mir nicht sicher, warum dies herabgestuft wird, hat für mich funktioniert. Außerdem kann Visual Studio-Code Terminals generieren, sodass es nicht verwunderlich ist, dass dieses Problem auftreten kann.
Jesse Reza Khorasanee


0

Ich fand, dass das Beenden des msys2-Terminals im Task-Manager das Problem löst


0

Öffnen Sie den Task-Manager, suchen Sie den Prozess bash.exe und beenden Sie ihn. Hat in meinem Fall geholfen.


0

Windows 10 das hat bei mir funktioniert:

1) Öffnen Sie cmd als Administrator

2) Typ:

taskkill /f /im git-bash.exe


3) Wenn ein Fehler aufgetreten ist: Der Prozess "ssh-agent.exe" wurde nicht gefunden. dann:

Art:

tasklist

4) Finde und beende jeden Prozess mit Worten wie "bash" oder "git" (Dies mag eine gefährliche Lösung sein, aber sobald du den Prozessnamen gefunden hast, wirst du es das nächste Mal wissen.)

taskkill /f /im ***.exe


0

In meinem Fall hatte ich eine streunende abd.exe, die im Task-Manager noch offen war. Durch das Töten wurde das Problem behoben.


-1

In System-Bash-Typ:

ps

Töte jeden schlecht aussehenden Prozess:

kill -9 <ID>

Hat für mich gearbeitet.


-1

Starten Sie einfach Ihren Computer neu. Beim Neustart unseres Computers ist dieses Problem behoben. Probieren Sie es aus.


4
"Wenn das nicht funktioniert, versuchen Sie, die Stromversorgung Ihres Gebäudes zu unterbrechen, und schließen Sie es dann wieder an. Wenn dies nicht funktioniert, rufen Sie die örtliche Elektrizitätsgesellschaft an und bitten Sie sie, die Stromversorgung für die gesamte Nachbarschaft zu unterbrechen wenige Momente ... etc "
Refaelio

1
lol Ich habe das gleiche getan, die Lösung klingt ziemlich albern, aber es funktioniert gut :)
zeroDivider
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.