Error de Git bash: no se pudo bifurcar el proceso secundario: no hay terminales disponibles (-1)

191

He tenido hasta 8 terminales git bash ejecutándose al mismo tiempo antes.

Actualmente solo tengo 2 para arriba.

No he visto este error antes y no entiendo qué lo está causando.

¡Cualquier ayuda sería apreciada!

Imagen adjunta:

ingrese la descripción de la imagen aquí

A. Petrizza
fuente
10
matar el proceso bash funcionó para mí.
bfranzen
37
-1 a todas las respuestas actuales. Todas las variaciones de "simplemente matar terminal y comenzar de nuevo". ¿Cuál es el problema subyacente? ¿Por qué no puedo tener 100 terminales?
RJFalconer
32
He tenido este problema para tal mucho tiempo y nunca ha sido capaz de llegar al fondo del mismo. Parece ser que las aplicaciones que se dejan abiertas pueden hacer que algunos controladores permanezcan abiertos, pero en mi caso los procesos bash se estaban cerrando y no hay procesos ssh (estoy usando mosh). Acabo de poder replicar el problema iniciando vscode usando vscode .y luego cerrando el terminal utilizado para abrirlo. Si bien la ventana vscode permanece abierta, parece que Cygwin no quiere abrir más terminales, tan pronto como la cierro, funciona.
Elven Spellmaker
25
@ElvenSpellmaker tienes razón, también tiene que ver code .en mi caso.
Bilal Khoukhi el
15
Solo por el bien de la confirmación: Encontré el problema hoy, también se debió code .en mi caso. El cierre de VS Code solucionó el problema. Gran descubrimiento @ElvenSpellmaker
kb.

Respuestas:

83

Encontró un problema y una solución similares en los grupos de Google

Abrí un símbolo del sistema de Windows y ejecuté el comando

$ tasklist

Parece que las conexiones ssh que había hecho en mis shells git bash no estaban cerradas cuando esas ventanas estaban cerradas y colgaban las ventanas disponibles de git bash shell.

Esta puede ser una solución peligrosa, pero desde el símbolo del sistema de Windows ejecuté

$ taskkill /F /IM ssh.exe 

Todo parece estar funcionando nuevamente después de esto. Puede que no haya sido directamente un problema de procesos huérfanos, pero esto funcionó al menos para mí.

Nota adicional: también puede eliminar otros procesos, por ejemplo, como:

$ taskkill /F /IM vim.exe
Scott Newson
fuente
66
Este procedimiento funcionó, aunque en mi caso los culpables fueron node.exe(Node.js) y link.exe(GNU link). Por lo tanto, es posible que deba buscar en la lista de tareas los procesos de culpabilidad. No estoy seguro de por qué, pero parece que los programas lanzados desde las sesiones de Bash pueden de alguna manera sobrevivir a su shell principal.
mamacdon
1
Gracias Scott, este procedimiento funcionó según lo mencionado por @mamacdon, incluso en mi caso los culpables fueron node.exe.
S52
21
Para mí, tuve que realizar "taskkill / F / IM ssh-agent.exe" pero lo suficientemente cerca para un voto positivo.
Dylan Kapp
12
Tuve que matar node.exe con el comandotaskkill /F /IM node.exe
Tarator
1
En mi caso (con Cygwin) era un único adb.exe que todavía se estaba ejecutando. Matarlo resuelto.
Diego Andrade
58

Veo el problema en Windows en git bash cuando apago mi consola git bash sin usar exit. Encontré la tarea de matar ssh-agent.exe del administrador de tareas de Windows para solucionar el problema.

Joe z
fuente
44
Esto funcionó inicialmente. Ahora todavía lo entiendo, incluso después de matar ssh-agent.exe.
Leo
1
Esta es una solución a corto plazo. El problema vuelve eventualmente. esperando que haya una forma más permanente de solucionar este problema
Sonic Soul
1
También descubrí que Node a veces también se deja en ejecución, solo matar eso parecía resolver el problema para mí.
MusicDev
después de matar el proceso "sh.exe", el problema se resolvió. Gracias a todos.
maris
Matar "winpty-agent.exe" funcionó para mí.
demstair
48

En mi caso, estaba relacionado con el uso del código VS. Anteriormente, he abierto el código VS usando un terminal git bash y ejecutando

code .

luego cerrando la terminal.

El problema se resuelve cerrando todas las ventanas de código VS abiertas.

Cuando tiene un editor o IDE configurado para abrir un terminal como git bash, cuando el IDE / IDE se está ejecutando, git bash activará bash desde "C: \ Windows \ System32 \ bash.exe" y cualquier otro intento de abrir bash desde una ventana separada es probable que se bloquee.

La mejor solución es matar el basurero IDE / Editor y abrir desde una nueva ventana o continuar desde el comando IDE / Editor.

Federico Caccia
fuente
44
Gracias, fue el mismo problema conmigo
Tarun Nagpal
1
¡Trabajado como un encanto! ¡Gracias!
jrend
1
Tuve el mismo problema Debería abrir vs código en cmd.
Richard
Exactamente el mismo problema. Gracias.
Lucien Lu
exactamente el mismo problema. Gracias de todos modos.
amar profundo
33

Abordo esto con una solución alternativa:

  1. Cierre la ventana de Git Bash.
  2. Administrador de tareas abierto.
  3. Encuentra el proceso 'Git para Windows'.
  4. Mátalo.
  5. Abre Git Bash.

Debería estar bien ahora.

Return_Of_The_Archons
fuente
3
La solución más fácil. Tan sencillo
JkAlombro
2
En mi caso, tenía bash.exe ejecutándose, y simplemente lo maté.
Gilberto Albino
8

Para hacer la vida más fácil (este problema ocurre con bastante frecuencia) cree un archivo llamado fixbash.baten el directorio de inicio y péguelo:

taskkill /F /IM ssh-agent.exe

Cuando se produce un problema, simplemente ábralo cmdy escriba fixbash.batpara solucionarlo.

O

Simplemente pegue el comando taskkill en su cmdsi no desea crear un script.

klimat
fuente
2
regresa:ERROR: The process "ssh-agent.exe" not found.
Jesse Reza Khorasanee
Esta solución funcionó para mí. Sin embargo, debe ir al administrador de tareas y eliminar todos los ssh-agent.exe ya que puede haber muchos
Java Main
6

Reinicia tu máquina.

(Las otras respuestas no funcionaron para mí. (No intenté reinstalar. Reiniciar es probablemente más rápido))

andydavies
fuente
3
Y si eso no funciona, reinstale su máquina o compre una nueva.
john16384
6

Para mí (o cualquier persona que ejecute transportador, que puede activar un servidor Selenium / WebDriver independiente), necesitaba taskkillel controlador web específico que estaba ejecutando mis pruebas.

Entonces, solo un argumento diferente: o su versión de chromedriver puede variar

taskkill /f /im chromedriver_2.34.exe

Tenga en cuenta que su controlador puede variar: IEDriverServer*.*.*.exevschromedriver_*.**exe

Su versión de controlador puede variar: chromedriver_2.34.exevschromedriver_2.33.exe

Este problema empeoró después de que el transportador se cerró sin cerrar el navegador automatizado / controlado por pruebas (debido a un problema separado que aún no entiendo). Naturalmente, muchas chromedrivertareas siguen ejecutándose, por eso las eliminan.

El guisante rojo
fuente
3
Sí, este fue mi problema. Tengo un script de conveniencia que usa Selenium para obtener algunas cosas de algunos sitios web donde curl y wget no se pueden usar debido a que tienen que procesar JavaScript. De todos modos, generalmente corro esto una vez en la mañana y a veces se cuelga. Nunca hice la correlación con este error de Cygwin hasta que vi esta publicación, ¡así que GRACIAS! Voy a actualizar el script que llama al selenio para matar el proceso chromedriver.exe antes de salir.
beaudet
6

Abra el administrador de tareas y elimine el proceso con name bash, esto funcionó para mí.

Hari
fuente
6

Esto sucede cuando sale de git bash sin terminar el proceso existente. Solo intenta matar esos procesos que comenzaste desde git bash. Estaba ejecutando el proceso de nodo dentro de git bash, así que eliminé todos los procesos de nodo Pasos para matar

  1. Administrador de tareas abierto
  2. Ir a la pestaña Detalles
  3. Busque node.exe (busca sus procesos)
  4. Mátalo todos y cada uno de los procesos de nodo
  5. Abre Git Bash nuevamente
Ishan
fuente
2
En mi caso lo fue adb shell. Así que corrí adb kill-serveren una ventana ya abierta y me lo arregló. +1
lucidbrot
Trabajó. Pero qué demonios ... no he hecho ningún node.js en meses ... ¿Por qué estaba funcionando?
JMI MADISON
5

finalmente descubrí qué estaba causando esto.

si usamos código como este (explícita o implícitamente) es decir, en el .bashrcarchivo

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

genera un nuevo proceso.

Si no sale y simplemente cierra la ventana, ese proceso aún se está ejecutando. así que cada nuevo bash abierto sigue agregando nuevos sin desechar los viejos.

cuando haya terminado con una ventana bash, simplemente presione ctrl+do escriba exitpara matar el proceso del agente, y no debe quedarse sin tenedores.

Alma sónica
fuente
3

Parece ser un problema con los procesos lanzados desde el git bash, como sugirió @mamacdon en su comentario sobre la respuesta principal de @Scott Newson.

Para mí, el problema apareció si lancé un vscode desde el bash con code, y si esta instancia de vscode lanzó un terminal git integrado mientras el bash original todavía se estaba ejecutando.

No importa si ese terminal se lanzó al inicio o más tarde, siempre que fuera mientras el bash original todavía se estaba ejecutando.

No sucedió cuando se cerró la fiesta antes de que se abriera la terminal integrada. No diferenciar entre exity cerrar bash a través de windows. No sucedió con otra ventana de bash más antigua aún ejecutándose.

La forma de lidiar con eso fue para mí cerrar las terminales en vscode con exit 'Kill Terminal' (tenga cuidado de no mezclar eso con 'cerrar panel'), o por supuesto, cerrar vscode en sí.

Si obtiene este error, intente recordar lo que lanzó desde el bash y elimínelo. Si las otras respuestas funcionaron para usted, probablemente es solo que estas son las cosas iniciadas por su bash o iniciadas por los procesos que lanzó desde el bash y de alguna manera estaban obteniendo un hijo de su bash original.

Sam96
fuente
3

Si está utilizando Visual Studio Code y no puede encontrar ssh-agent.exe o no puede ejecutarlo y después de abrir Git Bash obtiene ese error, simplemente vaya a su VSCode, abra Terminal> Nueva Terminal y simplemente presione el icono de la papelera la (Terminal de matar). por ejemplo (1: bash) si tienes múltiples, simplemente mátalos a todos y deberías ser bueno.

Justin Balaguer
fuente
3

En mi caso, necesito matar a Git bash en Windows. Entonces abrí el símbolo del sistema y ejecuté debajo del comando

$ tasklist

Enumerará todas las tareas en ejecución, luego deberá eliminar la tarea bash.exe utilizando el siguiente comando

$ taskkill /F /IM bash.exe 
Vatsal Shah
fuente
2

Abre tu administrador de tareas, busca procesos "sh" y mátalos. Buena suerte

Grace Nikole
fuente
2

En mi caso, la solución fue cerrar Visual Studio Code -donde tenía la consola ejecutándose también sin notarlo-

Después de cerrar todo de nuevo a la normalidad. Espero que esto ayude a alguien.

Herzling
fuente
1

Traté de matar todos mis terminales git en el administrador de tareas resuelve el problema. Esto también funciona para mí. buena suerte.

Rahul Naiknaware
fuente
1

En una versión más reciente de git para windows, el proceso para matar en el administrador de tareas fue "GitExtensions.exe". Mató eso y las terminales se reiniciaron sin problemas.

Joe Shelby
fuente
1

Busque el proceso ssh-agent en la ventana del Administrador de tareas. Después de detener o eliminar el proceso ssh-agent, el error desaparecerá.

Sohan Jangid
fuente
1

En mi caso, tenía el código visual de estudio ejecutándose y al cerrarlo resolvió el problema.

mhand
fuente
1
No estoy seguro de por qué esto se está rechazando, funcionó para mí. Además, el código visual de estudio puede tener terminales de generación, por lo que no es sorprendente que pueda afectar este problema.
Jesse Reza Khorasanee
0

Reinstalado git, ahora funciona bien.

prathesh p
fuente
0

descubrí que matar el terminal msys2 en el administrador de tareas resuelve el problema

usuario2293554
fuente
0

Abre el Administrador de tareas, encuentra el proceso bash.exe y mátalo. Ayudado en mi caso.

Bahti
fuente
0

Windows 10 esto funcionó para mí:

1) abre cmd como administrador

2) tipo:

taskkill /f /im git-bash.exe


3) Si hubo un error: no se encontró el proceso "ssh-agent.exe". luego:

tipo:

tasklist

4) Encuentre y elimine cada proceso con palabras como "bash" o "git" (esta puede ser una solución peligrosa, pero una vez que encuentre el nombre del proceso, la próxima vez lo sabrá).

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

Para Windows, en el administrador de tareas kill sh.exe.

Gürcan Kavakçı
fuente
0

En mi caso, tenía un abd.exe perdido que todavía estaba abierto en el administrador de tareas. Matarlo solucionó el problema.

cag8f
fuente
-1

En el sistema bash type:

ps

Mata cualquier proceso de mala apariencia:

kill -9 <ID>

Trabajó para mi.

Damian Czapiewski
fuente
-1

Simplemente reinicie su máquina, mientras reinicia nuestra máquina este problema está resuelto pruébelo.

Akshay Salvi
fuente
44
"Si eso no funciona, intente cortar la electricidad a su edificio, luego vuelva a enchufarlo. Si eso no funciona, intente llamar a la compañía eléctrica local y pídales que corten la electricidad a todo el vecindario para un unos momentos ... etc "
refaelio
1
lol hice lo mismo, la solución suena bastante tonta, pero funciona bien :)
zeroDivider