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

A. Petrizza
quelle
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
Scott Newson
quelle
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.

Joe z
quelle
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.

Federico Caccia
quelle
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.

Return_Of_The_Archons
quelle
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.

klimat
quelle
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.))

andydavies
quelle
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.

Die rote Erbse
quelle
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.

Hari
quelle
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
Ishan
quelle
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.

Sonic Soul
quelle
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.

Sam96
quelle
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.

Justin Balaguer
quelle
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 
Vatsal Shah
quelle
2

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

Grace Nikole
quelle
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.

Herzling
quelle
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.

Rahul Naiknaware
quelle
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.

Joe Shelby
quelle
1

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

Sohan Jangid
quelle
1

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

mhand
quelle
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

Git neu installiert, es funktioniert jetzt gut.

prathesh p
quelle
0

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

user2293554
quelle
0

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

Bahti
quelle
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
Radim Šafrán
quelle
0

Für Windows töten Sie im Task-Manager sh.exe.

Gürcan Kavakçı
quelle
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.

cag8f
quelle
-1

In System-Bash-Typ:

ps

Töte jeden schlecht aussehenden Prozess:

kill -9 <ID>

Hat für mich gearbeitet.

Damian Czapiewski
quelle
-1

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

Akshay Salvi
quelle
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