Erreur Git bash: impossible de lancer le processus enfant: il n'y a pas de terminaux disponibles (-1)

191

J'ai déjà eu jusqu'à 8 terminaux git bash en même temps.

Actuellement, je n'en ai que 2.

Je n'ai jamais vu cette erreur auparavant et je ne comprends pas ce qui la cause.

Toute aide serait appréciée!

Photo jointe:

entrez la description de l'image ici

A. Petrizza
la source
10
tuer le processus bash a fonctionné pour moi.
bfranzen
37
-1 à toutes les réponses actuelles. Toutes les variantes de "il suffit de tuer le terminal et de recommencer". Quel est le problème sous-jacent? Pourquoi ne puis-je pas avoir 100 terminaux?
RJFalconer
32
J'ai ce problème depuis si longtemps et je n'ai jamais pu aller au fond des choses. Il semble que ce soit des applications laissées ouvertes, ce qui peut faire en sorte que certaines poignées restent ouvertes, mais dans mon cas, les processus bash étaient en cours de fermeture et il n'y a pas de processus ssh autour (j'utilise mosh). J'ai juste pu reproduire le problème en lançant vscode en utilisant vscode .puis en fermant le terminal utilisé pour l'ouvrir. Alors que la fenêtre vscode reste ouverte, il semble que Cygwin ne veut pas ouvrir plus de terminaux, dès que je la ferme, cela fonctionne.
Elven Spellmaker
25
@ElvenSpellmaker vous avez raison, cela a à voir avec code .moi aussi.
Bilal Khoukhi
15
Juste pour la confirmation: J'ai rencontré le problème aujourd'hui, était également dû à code .mon cas. La fermeture de VS Code a résolu le problème. Super trouvaille @ElvenSpellmaker
kb.

Réponses:

83

J'ai trouvé un problème et une solution similaires dans les groupes Google

J'ai ouvert une invite de commande Windows et exécuté la commande

$ tasklist

Il semble que les connexions ssh que j'avais faites dans mes shells git bash n'étaient pas fermées lorsque ces fenêtres étaient fermées et suspendaient les fenêtres shell git bash disponibles.

Cela peut être une solution dangereuse, mais à partir de l'invite de commande Windows, j'ai couru

$ taskkill /F /IM ssh.exe 

Tout semble fonctionner à nouveau après cela. Ce n'était peut-être pas directement un problème de processus orphelins, mais cela a fonctionné au moins pour moi.

Remarque supplémentaire: vous pouvez également tuer d'autres processus, par exemple:

$ taskkill /F /IM vim.exe
Scott Newson
la source
6
Cette procédure a fonctionné, bien que dans mon cas, les coupables étaient node.exe(Node.js) et link.exe(GNU link). Vous devrez donc peut-être parcourir la liste des tâches pour les processus coupables. Je ne sais pas pourquoi, mais il semble que les programmes lancés à partir de sessions Bash puissent en quelque sorte surpasser leur shell parent.
mamacdon
1
Merci Scott, cette procédure a fonctionné comme mentionné par @mamacdon, même dans mon cas, les coupables étaient node.exe.
S52
21
Pour moi, je devais effectuer "taskkill / F / IM ssh-agent.exe" mais assez proche pour un vote à la hausse.
Dylan Kapp
12
J'ai dû tuer node.exe avec la commandetaskkill /F /IM node.exe
Tarator
1
Dans mon cas (avec Cygwin), il s'agissait d'un seul adb.exe qui fonctionnait toujours. Le tuer a résolu.
Diego Andrade
58

Je vois le problème sur Windows dans git bash lorsque je tue ma console git bash sans utiliser exit. J'ai trouvé la tâche de tuer ssh-agent.exe du gestionnaire de tâches Windows pour résoudre le problème.

Joe z
la source
4
Cela a fonctionné au départ. Maintenant, je l'ai toujours, même après avoir tué ssh-agent.exe.
Leo
1
c'est une solution à court terme. le problème revient finalement. en espérant qu'il existe un moyen plus permanent de résoudre ce problème
Sonic Soul
1
J'ai également constaté que Node était parfois laissé en cours d'exécution, ce qui semblait résoudre le problème pour moi.
MusicDev
après avoir tué le processus "sh.exe", le problème a été résolu. Merci a tous.
maris le
Tuer "winpty-agent.exe" a fonctionné pour moi.
demstair
48

Dans mon cas, c'était lié à l'utilisation du code VS. Auparavant, j'avais ouvert du code VS en utilisant un terminal git bash et en exécutant

code .

puis fermeture du terminal.

Le problème est résolu en fermant toutes les fenêtres de code VS ouvertes.

Lorsque vous avez un éditeur ou un IDE configuré pour ouvrir un terminal en tant que git bash, alors lorsque l'IDE / IDE est en cours d'exécution, git bash lancera bash à partir de "C: \ Windows \ System32 \ bash.exe" et de toute autre tentative ouvrir bash à partir d'une fenêtre séparée est susceptible de planter.

La meilleure solution est de tuer l'IDE / Editor bash et de l'ouvrir à partir d'une nouvelle fenêtre ou de continuer à partir de la commande IDE / Editor.

Federico Caccia
la source
4
Merci, c'était le même problème avec moi
Tarun Nagpal
1
A travaillé comme un charme! Merci!
jrend
1
Avait le même problème. Devrait simplement ouvrir vs code dans cmd.
Richard
Exactement le même problème. Merci.
Lucien Lu le
exactement le même problème. Merci de toute façon.
amar deep le
33

J'aborde cela avec une solution de contournement:

  1. Fermez la fenêtre Git Bash.
  2. Ouvrez le gestionnaire de tâches.
  3. Recherchez le processus «Git pour Windows».
  4. Tue le.
  5. Ouvrez Git Bash.

Ça devrait aller maintenant.

Return_Of_The_Archons
la source
3
solution la plus simple. Si simple.
JkAlombro
2
Dans mon cas, j'avais bash.exe en cours d'exécution, et je l'ai simplement tué.
Gilberto Albino
8

Pour vous faciliter la vie (ce problème arrive assez souvent), créez un fichier appelé fixbash.batdans le répertoire personnel et collez ceci:

taskkill /F /IM ssh-agent.exe

Lorsqu'un problème survient, ouvrez simplement cmdet tapez fixbash.batpour résoudre un problème.

Ou

Collez simplement la commande taskkill dans votre cmdsi vous ne souhaitez pas créer de script.

Klimat
la source
2
renvoie:ERROR: The process "ssh-agent.exe" not found.
Jesse Reza Khorasanee
Cette solution a fonctionné pour moi. Cependant, vous devez aller dans le gestionnaire de tâches et tuer tous les ssh-agent.exe car il peut y en avoir beaucoup
Java Main
6

Redémarrez votre machine.

(Les autres réponses n'ont pas fonctionné pour moi. (Je n'ai pas essayé de réinstaller. Le redémarrage est probablement plus rapide.))

Andydavies
la source
3
Et si cela ne fonctionne pas, réinstallez votre machine ou achetez-en une nouvelle.
john16384
6

Pour moi (ou pour quiconque exécutant rapporteur, qui peut faire tourner un serveur Selenium / WebDriver autonome), j'avais besoin taskkilldu pilote Web spécifique qui exécutait mes tests.

Donc juste un argument différent: ou votre version de chromedriver peut varier

taskkill /f /im chromedriver_2.34.exe

Notez que votre pilote peut varier: IEDriverServer*.*.*.exevschromedriver_*.**exe

La version de votre pilote peut varier: chromedriver_2.34.exevschromedriver_2.33.exe

Ce problème s'est aggravé après que le rapporteur ait quitté sans fermer le navigateur automatisé / piloté par les tests (en raison d'un problème distinct que je ne comprends pas encore.) Naturellement, de nombreuses chromedrivertâches restent en cours d'exécution, c'est pourquoi les tuer.

Le pois rouge
la source
3
Oui, c'était mon problème. J'ai un script pratique qui utilise Selenium pour récupérer des informations sur certains sites Web où curl et wget ne peuvent pas être utilisés en raison du traitement de JavaScript. Quoi qu'il en soit, je lance généralement cela une fois le matin et parfois il est suspendu. Je n'ai jamais fait la corrélation avec cette erreur cygwin jusqu'à ce que j'aie vu ce post, alors MERCI! Je vais mettre à jour le script qui appelle le sélénium pour tuer le processus chromedriver.exe avant de quitter.
beaudet le
6

Ouvrez le gestionnaire de tâches et tuez le processus avec le nom bash, cela a fonctionné pour moi.

Hari
la source
6

Cela se produit lorsque vous quittez git bash sans terminer le processus existant. Essayez simplement de tuer les processus que vous avez démarrés à partir de git bash. J'exécutais un processus de nœud dans git bash, j'ai donc tué tous les processus de nœud Étapes à suivre

  1. Ouvrir le gestionnaire de tâches
  2. Onglet Aller aux détails
  3. Recherchez node.exe (vous recherchez vos processus)
  4. Tuez-le chaque processus de nœud
  5. Ouvrez à nouveau Git Bash
Ishan
la source
2
Dans mon cas, c'était le cas adb shell. J'ai donc couru adb kill-serverdans une fenêtre déjà ouverte et cela a corrigé cela pour moi. +1
lucidbrot
Travaillé. Mais que diable ... Je n'ai pas fait de node.js depuis des mois ... Pourquoi fonctionnait-il?
JMI MADISON
5

finalement compris ce qui causait cela.

si nous utilisons un code comme celui-ci (explicitement ou implicitement) ie dans le .bashrcfichier

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

il engendre un nouveau processus.

si vous ne le quittez pas et fermez simplement la fenêtre, ce processus est toujours en cours d'exécution. donc chaque nouvelle fête ouverte ne cesse d'en ajouter de nouvelles sans éliminer les anciennes.

lorsque vous avez terminé avec une fenêtre bash, appuyez simplement sur ctrl+dou tapez exitpour tuer le processus d'agent, et vous ne devriez pas manquer de fourches.

Sonic Soul
la source
3

Cela semble être un problème avec les processus lancés à partir de git bash, comme @mamacdon l'a suggéré dans son commentaire sur la réponse principale de @Scott Newson.

Pour moi, le problème est apparu si je lançais un vscode à partir de la bash avec code , et si cette instance de vscode lancait un terminal git intégré alors que le bash original était toujours en cours d'exécution.

Peu importe que ce terminal ait été lancé au début ou plus tard, tant qu'il l'était pendant que le bash original était toujours en cours d'exécution.

Cela ne s'est pas produit lorsque la fête a été fermée avant l'ouverture du terminal intégré. N'a pas fait la différence entreexit et la fermeture de bash via Windows. Cela ne s'est pas produit avec une autre fenêtre bash plus ancienne toujours en cours d'exécution.

Le moyen de gérer cela était pour moi de fermer les terminaux dans vscode avec exit ou 'Kill Terminal' (attention à ne pas mélanger cela avec 'fermer le volet'), ou bien sûr, de fermer vscode lui-même.

Si vous obtenez cette erreur, essayez de vous souvenir de ce que vous avez lancé depuis le bash et tuez-le. Si les autres réponses ont fonctionné pour vous, c'est probablement juste que ce sont les choses lancées par votre bash ou lancées par des processus que vous avez lancés à partir de la bash et qu'elles obtenaient en quelque sorte un enfant de votre bash d'origine.

Sam96
la source
3

Si vous utilisez Visual Studio Code et que vous ne trouvez pas ssh-agent.exe ou que vous ne pouvez pas le tuer et après avoir ouvert Git Bash, vous obtenez cette erreur, accédez simplement à votre terminal VSCode ouvert> Nouveau terminal et appuyez simplement sur l'icône de la corbeille le (Kill Terminal). par exemple (1: bash) si vous en avez plusieurs, tuez-les tous et vous devriez être bon.

Justin Balaguer
la source
3

Dans mon cas, je dois tuer Git bash sous Windows. Alors ouvert l'invite de commande et exécuté ci-dessous la commande

$ tasklist

Il listera toutes les tâches en cours d'exécution, puis devra tuer la tâche bash.exe en utilisant la commande ci-dessous

$ taskkill /F /IM bash.exe 
Vatsal Shah
la source
2

Ouvrez votre gestionnaire de tâches, recherchez les processus "sh" et tuez-les. Bonne chance

Grace Nikole
la source
2

Dans mon cas, la solution était de fermer Visual Studio Code -où j'avais aussi la console en cours d'exécution sans m'en apercevoir-

Après avoir tout fermé, tout revient à la normale. J'espère que cela aide quelqu'un.

Herzling
la source
1

J'ai essayé de tuer tous mes terminaux git dans le gestionnaire de tâches pour résoudre le problème. Cela fonctionne aussi pour moi. bonne chance.

Rahul Naiknaware
la source
1

Sur une version plus récente de git pour Windows, le processus à tuer dans le gestionnaire de tâches était "GitExtensions.exe". Tué cela et les terminaux ont redémarré sans problème.

Joe Shelby
la source
1

Veuillez trouver le processus ssh-agent dans la fenêtre Gestionnaire de tâches. Après avoir arrêté ou tué le processus ssh-agent, l'erreur disparaîtra.

Sohan Jangid
la source
1

Dans mon cas, j'avais du code Visual Studio en cours d'exécution et sa fermeture a résolu le problème.

mhand
la source
1
Je ne sais pas pourquoi cela est critiqué, cela a fonctionné pour moi. De plus, le code de Visual Studio peut générer des terminaux, il n'est donc pas surprenant que cela puisse affecter ce problème.
Jesse Reza Khorasanee
0

Git réinstallé, il fonctionne maintenant très bien.

prathesh p
la source
0

J'ai trouvé que tuer le terminal msys2 dans le gestionnaire de tâches résout le problème

user2293554
la source
0

Ouvrez le gestionnaire de tâches, recherchez le processus bash.exe et tuez-le. A aidé dans mon cas.

Bahti
la source
0

Windows 10 cela a fonctionné pour moi:

1) ouvrez cmd en tant qu'administrateur

2) type:

taskkill /f /im git-bash.exe


3) En cas d'erreur: le processus "ssh-agent.exe" est introuvable. puis:

type:

tasklist

4) Trouvez et tuez tous les processus avec des mots comme «bash» ou «git» (cela peut être une solution dangereuse, mais une fois que vous trouverez le nom du processus, la prochaine fois vous le saurez.)

taskkill /f /im ***.exe
Radim Šafrán
la source
0

Pour Windows, dans le gestionnaire de tâches, kill sh.exe.

Gürcan Kavakçı
la source
0

Dans mon cas, j'avais un abd.exe errant qui était toujours ouvert dans le gestionnaire de tâches. Le tuer a résolu le problème.

cag8f
la source
-1

Dans le type de bash système:

ps

Éliminez tout processus malveillant:

kill -9 <ID>

A travaillé pour moi.

Damian Czapiewski
la source
-1

Redémarrez simplement votre machine, lors du redémarrage de notre machine, ce problème est résolu, essayez-le.

Akshay Salvi
la source
4
«Si cela ne fonctionne pas, essayez de couper le courant de votre bâtiment, puis rebranchez-le. Si cela ne fonctionne pas, essayez d'appeler la compagnie d'électricité locale et demandez-lui de couper le courant dans tout le quartier pour un quelques moments ... etc "
refaelio
1
lol j'ai fait la même chose, la solution semble assez idiote, mais ça marche très bien :)
zeroDivider