Erro do Git bash: não foi possível bifurcar o processo filho: não há terminais disponíveis (-1)

191

Eu tive até 8 terminais bash git em execução ao mesmo tempo antes.

Atualmente tenho apenas 2.

Eu não vi esse erro antes e não estou entendendo o que está causando isso.

Qualquer ajuda seria apreciada!

Imagem em anexo:

insira a descrição da imagem aqui

A. Petrizza
fonte
10
matar o processo bash funcionou para mim.
Bfranzen
37
-1 para todas as respostas atuais. Todas as variações de "basta matar o terminal e começar de novo". Qual é o problema subjacente? Por que não posso ter 100 terminais?
precisa saber é o seguinte
32
Eu tive esse problema para tal um longo tempo e nunca foi capaz de chegar ao fundo da questão. Parece que são aplicativos deixados em aberto que podem fazer com que alguns identificadores permaneçam abertos, mas no meu caso os processos do bash estavam sendo fechados e não há processos ssh por perto (estou usando mosh). Acabei de replicar o problema iniciando o vscode usando vscode .e fechando o terminal usado para abri-lo. Enquanto a janela vscode permanece aberta, parece que o Cygwin não deseja abrir mais terminais; assim que eu a fecho, ela funciona.
Elven Spellmaker
25
@ElvenSpellmaker você está certo, isso tem a ver com o code .meu caso também.
Bilal Khoukhi
15
Apenas por uma questão de confirmação: o problema de hoje também foi devido code .no meu caso. O fechamento do código VS resolveu o problema. Grande descoberta @ElvenSpellmaker
kb.

Respostas:

83

Encontrou um problema e solução semelhantes nos grupos do Google

Abri um prompt de comando do Windows e executei o comando

$ tasklist

Parece que as conexões ssh que eu fiz em minhas conchas do git bash não estavam sendo fechadas quando essas janelas estavam fechadas e estavam pendurando as janelas disponíveis do shell do git bash.

Esta pode ser uma solução perigosa, mas no prompt de comando do Windows eu corri

$ taskkill /F /IM ssh.exe 

Tudo parece estar funcionando novamente depois disso. Pode não ter sido diretamente um problema de processos órfãos, mas isso funcionou pelo menos para mim.

Nota adicional: você também pode matar outros processos, por exemplo, como:

$ taskkill /F /IM vim.exe
Scott Newson
fonte
6
Este procedimento funcionou, embora, no meu caso, os culpados sejam node.exe(Node.js) e link.exe(link GNU). Portanto, talvez você precise procurar na lista de tarefas os processos culpados. Não sei por que, mas parece que os programas iniciados dentro das sessões do Bash podem, de alguma forma, sobreviver ao shell pai.
mamacdon
1
Obrigado Scott, este procedimento funcionou conforme mencionado por @mamacdon, mesmo no meu caso os culpados eram o node.exe.
S52 #
21
Para mim, eu tive que executar "taskkill / F / IM ssh-agent.exe", mas perto o suficiente para uma votação positiva.
Dylan Kapp
12
Eu tinha que matar NODE.EXE com o comandotaskkill /F /IM node.exe
Tarator
1
No meu caso (com Cygwin), era um único adb.exe que ainda estava em execução. Matando resolvido.
Diego Andrade
58

Vejo o problema no Windows no git bash quando mato meu console do git bash sem usar exit. Eu encontrei a tarefa de matar ssh-agent.exe do gerenciador de tarefas do Windows para corrigir o problema.

Joe z
fonte
4
Isso funcionou inicialmente. Agora eu ainda o entendo, mesmo depois de matar o ssh-agent.exe.
Leo
1
Esta é uma solução de curto prazo. o problema retorna eventualmente. esperando que exista uma maneira mais permanente de corrigir esse problema #
Sonic Soul
1
Também descobri que o Node às vezes também fica rodando, apenas matando isso parecia resolver o problema para mim.
MusicDev 7/08/19
Após matar o processo "sh.exe", o problema foi resolvido. Obrigado a todos.
maris
Matar "winpty-agent.exe" funcionou para mim.
demstair 15/06
48

No meu caso, isso estava relacionado ao uso do código VS. Anteriormente, eu abri o código VS usando um terminal git bash e executando

code .

depois fechando o terminal.

O problema é resolvido fechando todas as janelas de código VS abertas.

Quando você tem um editor ou IDE configurado para abrir um terminal como git bash, quando o IDE / IDE está em execução, o git bash alterna entre "C: \ Windows \ System32 \ bash.exe" e qualquer outra tentativa de abrir o bash a partir de uma janela separada provavelmente trava.

A melhor solução é eliminar o bash do IDE / Editor e abrir a partir de uma nova janela ou continuar no comando IDE / Editor.

Federico Caccia
fonte
4
Obrigado, foi o mesmo problema comigo
Tarun Nagpal
1
Trabalhou como um encanto! Obrigado!
jrend 10/01
1
Teve o mesmo problema. Deve apenas abrir vs código no cmd.
Richard
Exatamente o mesmo problema. Obrigado.
Lucien Lu
exatamente o mesmo problema. Obrigado de qualquer maneira.
amar deep
33

Abordo isso com uma solução alternativa:

  1. Feche a janela do Git Bash.
  2. Abra o Gerenciador de tarefas.
  3. Encontre o processo 'Git for Windows'.
  4. Mate isso.
  5. Abra o Git Bash.

Deve estar tudo bem agora.

Return_O__Archons
fonte
3
solução mais fácil. Tão simples.
JkAlombro
2
No meu caso, eu tinha o bash.exe em execução e simplesmente o matei.
Gilberto Albino
8

Para facilitar a vida (esse problema ocorre com frequência), crie um arquivo chamado fixbash.batno diretório inicial e cole:

taskkill /F /IM ssh-agent.exe

Quando o problema ocorrer, basta abrir cmde digite fixbash.batpara corrigir um problema.

Ou

Basta colar o comando taskkill no seu cmdse você não quiser criar um script.

Klimat
fonte
2
retorna:ERROR: The process "ssh-agent.exe" not found.
Jesse Reza Khorasanee
Esta solução funcionou para mim. No entanto, você precisa ir ao gerenciador de tarefas e matar todo o ssh-agent.exe, pois pode haver muitos
Java Main
6

Reinicie sua máquina.

(As outras respostas não funcionaram para mim. (Não tentei reinstalar. Reiniciar é provavelmente mais rápido.))

andydavies
fonte
3
E se isso não funcionar, reinstale a sua máquina ou compre uma nova.
john16384
6

Para mim (ou qualquer pessoa executando o transferidor, que pode gerar um servidor Selenium / WebDriver autônomo), eu precisava taskkilldo webdriver específico que estava executando meus testes.

Portanto, apenas um argumento diferente: ou sua versão do chromedriver pode variar

taskkill /f /im chromedriver_2.34.exe

Observe que seu driver pode variar: IEDriverServer*.*.*.exevschromedriver_*.**exe

A versão do seu driver pode variar: chromedriver_2.34.exevschromedriver_2.33.exe

Esse problema piorou depois que o transferidor saiu sem fechar o navegador automatizado / controlado por teste (devido a um problema separado que ainda não entendi.) Naturalmente, muitas chromedrivertarefas permanecem em execução, é por isso que as mata.

A Ervilha Vermelha
fonte
3
Sim, este foi o meu problema. Eu tenho um script de conveniência que usa o Selenium para buscar algumas coisas de alguns sites onde o curl e o wget não podem ser usados ​​devido ao processamento do JavaScript. Enfim, eu costumo executar isso uma vez pela manhã e às vezes fica desligado. Eu nunca fiz a correlação com esse erro cygwin até que vi este post, então OBRIGADO! Vou atualizar o script que chama selênio para matar o processo chromedriver.exe antes de sair.
Beaudet
6

Abra o gerenciador de tarefas e mate o processo com o nome bash, isso funcionou para mim.

Hari
fonte
6

Isso acontece quando você sai do git bash sem encerrar o processo existente. Apenas tente matar os processos que você iniciou no git bash. Eu estava executando o processo do nó dentro do git bash, então matei todos os processos do nó Etapas para matar

  1. Abra o Gerenciador de tarefas
  2. Guia Goto Details
  3. Procure o node.exe (você procura seus processos)
  4. Mate cada processo de nó
  5. Abra o Git Bash novamente
Ishan
fonte
2
No meu caso, foi adb shell. Então eu corri adb kill-serverem uma janela já aberta e consertou isso para mim. +1
lucidbrot 16/05/19
Trabalhou. Mas que diabos ... Eu não uso nenhum node.js há meses ... Por que estava funcionando?
JMI MADISON
5

finalmente descobri o que estava causando isso.

se usarmos código como este (explícita ou implicitamente), ou seja, no .bashrcarquivo

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

gera um novo processo.

se você não sair e fechar a janela, esse processo ainda está em execução. portanto, cada nova festança aberta continua adicionando novas sem eliminar as antigas.

Quando terminar com uma janela do bash, basta pressionar ctrl+dou digitar exitpara interromper o processo do agente e você não deve ficar sem garfos.

Sonic Soul
fonte
3

Parece ser um problema com os processos lançados a partir do git bash, como o @mamacdon sugerido em seu comentário à resposta do @Scott Newson.

Para mim, o problema apareceu se eu lançasse um vscode do bash com codee se essa instância do vscode iniciasse um terminal git integrado enquanto o bash original ainda estava em execução.

Não importa se esse terminal foi lançado no início ou mais tarde, desde que o bash original ainda estivesse em execução.

Não aconteceu quando o bash foi fechado antes da abertura do terminal integrado. Não diferenciava exite fechava o bash pelas janelas. Não aconteceu com outra janela antiga do bash ainda em execução.

A maneira de lidar com isso foi fechar os terminais no vscode com exitou 'Kill Terminal' (tenha cuidado para não misturar isso com o 'painel de fechamento') ou, é claro, fechar o próprio vscode.

Se você receber esse erro, tente se lembrar do que você lançou a partir do bash e mate-o. Se as outras respostas funcionaram para você, provavelmente essas são as coisas iniciadas pelo seu bash ou iniciadas pelos processos que você iniciou a partir do bash e, de alguma forma, elas estavam recebendo um filho do seu bash original.

Sam96
fonte
3

Se você está usando o Visual Studio Code e não consegue encontrar o ssh-agent.exe ou não pode executá-lo, e após abrir o Git Bash, você recebe esse erro, basta ir ao seu VSCode, abra Terminal> Novo Terminal e pressione o ícone da lixeira o (Kill Terminal). por exemplo (1: bash) se você tiver vários, basta matar todos eles e você deve ser bom.

Justin Balaguer
fonte
3

No meu caso, preciso matar o Git bash no Windows. Prompt de comando aberto e executado abaixo do comando

$ tasklist

Ele listará todas as tarefas em execução e precisará matar a tarefa bash.exe usando o comando abaixo

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

Abra seu gerenciador de tarefas, pesquise processos "sh" e mate-os. Boa sorte

Grace Nikole
fonte
2

No meu caso, a solução foi fechar o código do Visual Studio - onde eu tinha o console em execução também sem perceber -

Depois de fechar tudo de volta ao normal. Espero que isso ajude alguém.

Herzling
fonte
1

Eu tentei matar todos os meus terminais git no gerenciador de tarefas resolve o problema. Isso funciona para mim também. boa sorte.

Rahul Naiknaware
fonte
1

Em uma versão mais recente do git for windows, o processo para matar no gerenciador de tarefas era "GitExtensions.exe". Matou isso e os terminais foram reiniciados sem problemas.

Joe Shelby
fonte
1

Encontre o processo ssh-agent na janela do Gerenciador de tarefas. Depois de parar ou interromper o processo ssh-agent, o erro desaparecerá.

Sohan Jangid
fonte
1

No meu caso, eu tinha o código do visual studio em execução e o fechamento resolveu o problema.

mhand
fonte
1
Não sei por que isso está diminuindo o voto, funcionou para mim. Além disso, o código do visual studio pode gerar terminais, portanto, não é de surpreender que isso possa afetar esse problema.
Jesse Reza Khorasanee
0

Reinstalado o git, agora está funcionando bem.

prathesh p
fonte
0

eu descobri que matar o terminal msys2 no gerenciador de tarefas resolve o problema

user2293554
fonte
0

Abra o Gerenciador de tarefas, encontre o processo bash.exe e mate-o. Ajudou no meu caso.

Bahti
fonte
0

Windows 10 isso funcionou para mim:

1) abra o cmd como administrador

2) tipo:

taskkill /f /im git-bash.exe


3) Se houve um erro: O processo "ssh-agent.exe" não foi encontrado. então:

tipo:

tasklist

4) Encontre e mate todos os processos com palavras como "bash" ou "git" (essa pode ser uma solução perigosa, mas depois de encontrar o nome do processo, da próxima vez você saberá.)

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

Para o Windows, no gerenciador de tarefas, mate o sh.exe.

Gürcan Kavakçı
fonte
0

No meu caso, eu tinha um abd.exe perdido que ainda estava aberto no gerenciador de tarefas. Matá-lo corrigiu o problema.

cag8f
fonte
-1

No sistema bash, digite:

ps

Mate qualquer processo de má aparência:

kill -9 <ID>

Trabalhou para mim.

Damian Czapiewski
fonte
-1

Apenas reinicie sua máquina. Ao reiniciar nossa máquina, esse problema foi resolvido, experimente.

Akshay Salvi
fonte
4
"Se isso não funcionar, tente cortar a energia do seu prédio e conecte-o novamente. Se isso não funcionar, tente ligar para a empresa de eletricidade local e peça para que cortem a energia de todo o bairro por um período alguns momentos ... etc "
refaelio 29/10/19
1
lol eu fiz o mesmo, os sons solução muito bobo, mas funciona muito bem :)
zeroDivider