Errore Git bash: impossibile eseguire il fork del processo figlio: non ci sono terminali disponibili (-1)


191

Ho avuto fino a 8 terminali Git Bash in esecuzione contemporaneamente.

Attualmente ne ho solo 2 in su.

Non ho mai visto questo errore prima e non capisco cosa lo stia causando.

Qualsiasi aiuto sarebbe apprezzato!

Foto allegata:

inserisci qui la descrizione dell'immagine


10
uccidere il processo bash ha funzionato per me.
bfranzen,

37
-1 a tutte le risposte correnti. Tutte le varianti di "basta terminare il terminale e ricominciare". Qual è il problema di fondo? Perché non posso avere 100 terminali?
RJFalconer,

32
Ho avuto questo problema per così tanto tempo e non sono mai stato in grado di risolverlo. Sembra che siano applicazioni lasciate aperte che possono far rimanere aperti alcuni handle, ma nel mio caso i processi bash venivano chiusi e non ci sono processi ssh in giro (sto usando mosh). Sono appena stato in grado di replicare il problema avviando vscode utilizzando vscode .e quindi chiudendo il terminale utilizzato per aprirlo. Mentre la finestra di vscode rimane aperta sembra che Cygwin non voglia aprire più terminali, non appena lo chiudo, funziona.
Elven Spellmaker il

25
@ElvenSpellmaker hai ragione, anche code .nel mio caso.
Bilal Khoukhi,

15
Solo per motivi di conferma: oggi code .ho riscontrato il problema, anche nel mio caso. La chiusura del codice VS ha risolto il problema. Grande scoperta @ElvenSpellmaker
kb.

Risposte:


83

Trovato un problema e una soluzione simili nei gruppi di Google

Ho aperto un prompt dei comandi di Windows ed eseguito il comando

$ tasklist

Sembra che le connessioni ssh che avevo fatto nei miei git bash shell non fossero chiuse quando quelle finestre erano chiuse e stavano appendendo le finestre disponibili git bash shell.

Questa potrebbe essere una soluzione pericolosa ma dal prompt dei comandi di Windows ho eseguito

$ taskkill /F /IM ssh.exe 

Tutto sembra funzionare di nuovo dopo questo. Potrebbe non essere stato direttamente un problema di processi orfani, ma questo ha funzionato almeno per me.

Nota aggiuntiva: puoi anche uccidere altri processi, ad esempio come:

$ taskkill /F /IM vim.exe

6
Questa procedura ha funzionato, anche se nel mio caso i colpevoli erano node.exe(Node.js) e link.exe(collegamento GNU). Quindi potresti dover cercare l'elenco delle attività per i processi colpevoli. Non sono sicuro del perché, ma sembra che i programmi lanciati dalle sessioni di Bash possano in qualche modo sopravvivere alla shell madre.
mamacdon,

1
Grazie Scott, questa procedura ha funzionato come indicato da @mamacdon anche nel mio caso i colpevoli erano node.exe.
S52,

21
Per me, ho dovuto eseguire "taskkill / F / IM ssh-agent.exe" ma abbastanza vicino per un voto positivo.
Dylan Kapp,

12
Ho dovuto uccidere node.exe con il comandotaskkill /F /IM node.exe
Tarator,

1
Nel mio caso (con Cygwin) era ancora in esecuzione un singolo adb.exe. Ucciderlo risolto.
Diego Andrade,

58

Vedo il problema su Windows in Git Bash quando uccido la mia console Git Bash senza usare Exit. Ho trovato uccidere l'attività ssh-agent.exe dal task manager di Windows per risolvere il problema.


4
Questo ha funzionato inizialmente. Ora ho ancora capito, anche dopo aver ucciso ssh-agent.exe.
Leone,

1
questa è una soluzione a breve termine. il problema ritorna alla fine. sperando che ci sia un modo più permanente per risolvere questo problema
Sonic Soul

1
Ho anche scoperto che a volte anche Node è rimasto in esecuzione, solo uccidere che sembrava risolvere il problema per me.
MusicDev

dopo aver terminato il processo "sh.exe", il problema è stato risolto. Ringrazia tutti.
maris

Uccidere "winpty-agent.exe" ha funzionato per me.
demstair il

48

Nel mio caso, era correlato all'uso del codice VS. In precedenza ho aperto il codice VS usando un terminale git bash ed eseguendolo

code .

quindi chiudendo il terminale.

Il problema viene risolto chiudendo tutte le finestre del codice VS aperte.

Quando hai qualche editor o IDE configurato per aprire un terminale come git bash, quindi quando l'IDE / IDE è in esecuzione, git bash fa girare bash da "C: \ Windows \ System32 \ bash.exe" e qualsiasi altro tentativo di aprire bash da una finestra separata potrebbe andare in crash.

La soluzione migliore è uccidere l'IDE / Editor bash e aprirlo da una nuova finestra o continuare dal comando IDE / Editor.


4
Grazie, è stato lo stesso problema con me
Tarun Nagpal,

1
Ha funzionato come un fascino! Grazie!
jrend

1
Ho avuto lo stesso problema. Dovrebbe solo aprire vs codice in cmd.
Richard,

Esattamente lo stesso problema. Grazie.
Lucien Lu

esattamente lo stesso problema. Grazie lo stesso
amar deep

33

Affronto questo con una soluzione alternativa:

  1. Chiudi la finestra di Git Bash.
  2. Apri Task manager.
  3. Trova il processo "Git per Windows".
  4. Uccidilo.
  5. Apri Git Bash.

Dovrebbe essere ok ora.


3
soluzione più semplice. Così semplice.
JkAlombro,

2
Nel mio caso, avevo bash.exe in esecuzione e l'ho ucciso.
Gilberto Albino,

8

Per semplificare la vita (questo problema si verifica abbastanza spesso) crea un file chiamato fixbash.batnella home directory e incolla questo:

taskkill /F /IM ssh-agent.exe

Quando si verifica un problema, basta aprire cmde digitare fixbash.batper risolvere un problema.

O

Basta incollare il comando taskkill nel tuo cmdse non vuoi creare uno script.


2
ritorna:ERROR: The process "ssh-agent.exe" not found.
Jesse Reza Khorasanee il

Questa soluzione ha funzionato per me. Tuttavia devi andare al task manager e uccidere tutti ssh-agent.exe in quanto ce ne possono essere molti
Java Main,

6

Riavvia la tua macchina.

(Le altre risposte non hanno funzionato per me. (Non ho provato a reinstallare. Il riavvio è probabilmente più veloce.))


3
E se non funziona, reinstalla il tuo computer o acquistane uno nuovo.
john16384,

6

Per me (o chiunque esegua il goniometro, che può far girare un server Selenium / WebDriver autonomo), avevo bisogno taskkilldel webdriver specifico che stava eseguendo i miei test.

Quindi solo un argomento diverso: o la tua versione di chromedriver può variare

taskkill /f /im chromedriver_2.34.exe

Nota che il tuo driver può variare: IEDriverServer*.*.*.exevschromedriver_*.**exe

La versione del driver può variare: chromedriver_2.34.exevschromedriver_2.33.exe

Questo problema è peggiorato dopo che il goniometro si è chiuso senza chiudere il browser automatizzato / test-driven , (a causa di un problema separato che ancora non capisco). Naturalmente molte chromedriverattività rimangono in esecuzione, ecco perché ucciderle.


3
Sì, questo era il mio problema. Ho uno script di convenienza che utilizza Selenium per recuperare alcune cose da alcuni siti Web in cui curl e wget non possono essere utilizzati a causa della necessità di elaborare JavaScript. Ad ogni modo, di solito lo eseguo una volta al mattino e a volte si blocca. Non ho mai fatto la correlazione con questo errore di Cygwin fino a quando non ho visto questo post, quindi GRAZIE! Ho intenzione di aggiornare lo script che chiama selenio per interrompere il processo chromedriver.exe prima di uscire.
beaudet,

6

Apri il task manager e uccidi il processo con il nome bash, questo ha funzionato per me.


6

Questo succede quando si esce da git bash senza terminare il processo esistente. Prova a uccidere quei processi che hai iniziato da Git Bash. Stavo eseguendo il processo del nodo all'interno di git bash, quindi ho ucciso tutti i processi del nodo Passaggi per uccidere

  1. Apri Task Manager
  2. Vai alla scheda Dettagli
  3. Cerca node.exe (cerchi i tuoi processi)
  4. Uccidilo per ogni processo del nodo
  5. Apri di nuovo Git Bash

2
Nel mio caso lo era adb shell. Quindi sono corso adb kill-serverin una finestra già aperta e questo mi ha risolto. +1
lucidbrot

Lavorato. Ma che diavolo ... Non ho fatto alcun node.js da mesi ... Perché era in esecuzione?
JMI MADISON,

5

finalmente capito cosa stava causando questo.

se usiamo codice come questo (esplicitamente o implicitamente), cioè nel .bashrcfile

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

genera un nuovo processo.

se non lo esci e chiudi semplicemente la finestra, quel processo è ancora in esecuzione. così ogni nuovo bash aperto continua ad aggiungerne di nuovi senza eliminare quelli vecchi.

quando hai finito con una finestra bash, premi ctrl+do digita semplicemente exitper terminare il processo dell'agente e non dovresti rimanere senza fork.


3

Sembra essere un problema con i processi avviati da Git Bash, come suggerito da @mamacdon nel suo commento sulla risposta principale di @Scott Newson.

Per me, il problema è apparso se avessi lanciato un vscode dalla bash codee se questa istanza di vscode avesse lanciato un terminale git integrato mentre la bash originale era ancora in esecuzione.

Non importa se quel terminale è stato lanciato all'inizio o successivamente, purché fosse mentre la bash originale era ancora in esecuzione.

Non è successo quando il bash è stato chiuso prima dell'apertura del terminale integrato. Non ho fatto distinzione traexit e chiudere bash tramite windows. Non è successo con un'altra finestra bash più vecchia ancora in esecuzione.

Il modo di gestirlo è stato per me chiudere i terminali con vscode exit o "Kill Terminal" (fare attenzione a non confonderlo con "close panel"), o, naturalmente, chiudere vscode stesso.

Se ricevi questo errore prova a ricordare cosa hai lanciato dalla bash e uccidilo. Se le altre risposte hanno funzionato per te, probabilmente è solo che queste sono le cose lanciate dalla tua bash o avviate da processi che hai lanciato dalla bash e in qualche modo stavano ottenendo un figlio dalla tua bash originale.


3

Se stai usando Visual Studio Code e non riesci a trovare ssh-agent.exe o non riesci a eseguirlo e dopo aver aperto Git Bash ottieni questo errore, vai sul tuo VSCode, apri Terminale> Nuovo terminale e premi l'icona del cestino il (Kill Terminal). ad es. (1: bash) se ne hai multipli, uccidili tutti e dovresti essere bravo.


3

Nel mio caso ho bisogno di uccidere Git bash in Windows. Così ha aperto il prompt dei comandi e ha funzionato sotto il comando

$ tasklist

Elencherà tutte le attività in esecuzione, quindi dovrà terminare l'attività bash.exe usando il comando seguente

$ taskkill /F /IM bash.exe 

2

Apri il tuo Task Manager, cerca i pro "sh" e uccidili. In bocca al lupo


2

Nel mio caso, la soluzione era quella di chiudere il codice di Visual Studio, dove avevo anche la console in esecuzione senza accorgermene-

Dopo aver chiuso tutto torna alla normalità. Spero che questo aiuti qualcuno.


1

Ho provato a uccidere tutti i miei terminali git in Task Manager risolve il problema. Questo funziona anche per me. in bocca al lupo.


1

Su una versione più recente di git per Windows, il processo da terminare in Task Manager era "GitExtensions.exe". L'ho ucciso e i terminali sono stati riavviati senza problemi.


1

Si prega di trovare il processo ssh-agent nella finestra Task Manager. Dopo aver interrotto o ucciso il processo ssh-agent, l'errore scompare.


1

Nel mio caso il codice di Visual Studio era in esecuzione e la sua chiusura ha risolto il problema.


1
Non sono sicuro del motivo per cui questo viene ridimensionato, ha funzionato per me. Inoltre, il codice di Visual Studio può avere terminali generati, quindi non sorprende che possa influenzare questo problema.
Jesse Reza Khorasanee,


0

ho scoperto che uccidere il terminale msys2 in Task Manager risolve il problema


0

Aprire Task manager, trovare il processo bash.exe e ucciderlo. Aiutato nel mio caso.


0

Windows 10 ha funzionato per me:

1) apri cmd come amministratore

2) tipo:

taskkill /f /im git-bash.exe


3) Se si è verificato un errore: il processo "ssh-agent.exe" non trovato. poi:

genere:

tasklist

4) Trova e uccidi ogni processo con parole come "bash" o "git" (Questa potrebbe essere una soluzione pericolosa, ma una volta trovato il nome del processo, la prossima volta lo saprai.)

taskkill /f /im ***.exe


0

Nel mio caso, avevo un abd.exe randagio che era ancora aperto in Task Manager. Ucciderlo ha risolto il problema.


-1

Nel tipo di sistema bash:

ps

Uccidi qualsiasi brutto processo:

kill -9 <ID>

Ha funzionato per me.


-1

Riavvia la tua macchina, mentre riavvia la nostra macchina questo problema è risolto provalo.


4
"Se il problema persiste, prova a interrompere la corrente per il tuo edificio, quindi ricollegalo. Se ciò non funziona, prova a chiamare la compagnia elettrica locale e chiedi loro di ridurre la potenza dell'intero quartiere per un pochi momenti ... ecc. "
refaelio,

1
lol Ho fatto lo stesso, la soluzione sembra abbastanza sciocca, ma funziona benissimo :)
zero Divisore
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.