A. Petrizza
A. Petrizza

Reputation: 3350

Git bash Error: Could not fork child process: There are no available terminals (-1)

I have had up to 8 git bash terminals running at the same time before.

Currently I have only 2 up.

I have not seen this error before and I am not understanding what is causing it.

Any help would be appreciated!

Picture attached:

enter image description here

Upvotes: 245

Views: 162984

Answers (30)

sajanvz
sajanvz

Reputation: 37

Nothing worked ,This is basically the last git-bash did not terminate properly , finally had to kill these all ,

Open CMD

taskkill /F /IM git-bash.exe
taskkill /F /IM git.exe
taskkill /F /IM git-remote-https.exe
taskkill /F /IM git-credential-manager.exe

Now git bash window works fine

Upvotes: 0

Ishan
Ishan

Reputation: 720

This happens when you exit Git Bash without terminating an existing process. Just try and kill those processes that you started from Git Bash.

I was running node process inside Git Bash, so I killed all node processes.

Steps to kill

  1. Open Task Manager
  2. Go to Details Tab
  3. Look for the process that was running in Git Bash (e.g. node, python)
  4. Kill all instances of that process
  5. Open Git Bash again

Upvotes: 12

S G
S G

Reputation: 39

I tried resolving the issue with the given answers but had no luck 
C:\Windows\System32>taskkill /F /IM bash.exe
ERROR: The process "bash.exe" not found.
C:\Windows\System32>taskkill /F /IM vim.exe
ERROR: The process "vim.exe" not found.

then I resolved it by killing ruby.exe process at command prompt and it worked for me
taskkill /F /IM ruby.exe

Upvotes: 2

Nikhil
Nikhil

Reputation: 43

Tried the following solution which worked for me:

  1. Kill all existing git.exe
  2. Added my credentials for BitBucket in the Windows Credential manager under the generic credentials section. enter image description here

Upvotes: 0

TTT
TTT

Reputation: 29084

Many answers here are suggesting different processes they need to kill in order to be able to open a new Git Bash terminal. In my case there were multiple conhost.exe processes running which I had to kill before I could open another window successfully.

Perhaps more importantly, is why it happened. I think I know exactly what I did which led to this state. I noticed that when typing git log, if I then resize my Git Bash window, it would hang. (Pressing q would not exit the log and I could no longer type commands.) I ended up closing the window and opening another one. I was doing some testing of this repeatedly to see if I could figure out a solution to the freezing after resizing, and after doing this multiple times (probably around 10 times), I received the error in this question. The results of my testing are:

Opening a new Git Bash Window starts the following processes:

  1. conhost.exe
  2. git-bash.exe
  3. git.exe
  4. mintty.exe

Now, when you type git log, 4 additional processes open:

  1. bash.exe
  2. conhost.exe
  3. git.exe
  4. less.exe (this will only stay open if your log cannot fit on one screen)

When you close Git Bash, those 8 processes all normally go away. However, due to a bug, (which I think is possibly in less.exe) when you resize the window while viewing the log, Git Bash hangs. If you now close the window only 6 of the 8 processes close. Both less.exe and conhost.exe stay active. In my case, eventually enough conhost.exe processes built up and caused whatever the issue is that leads Git Bash displaying the error and not starting.

That said, I tried to repeat the issue but gave up after 20+ tries, which was more conhost processes than I had to kill when I was in the problem state. I suspect it's not a process number but something about the state of one or more processes that leads to the error. Obviously since other answers mention closing different processes, the "thing" that isn't closing properly and fighting against Git Bash can vary, depending on what tools you're using.

Note, I'm using Git version: 2.37.1.windows.1.

Upvotes: 1

user15929966
user15929966

Reputation:

In my case, I was running jupyter-notebook from Git Bash and closed the terminal without closing the notebook. When I closed all running git bash terminals and tried to open new terminal, this gave me the error:

Error: Could not fork child process: There are no available terminals (-1).

Solution

taskkill /F /IM jupyter-notebook.exe

After that, I was able to run commands in git bash terminal.

Upvotes: 3

Eddie Knight
Eddie Knight

Reputation: 112

This problem started for me when I edited my bash_profile and restarted git bash.

The problem was resolved after I closed my terminal session in VS Code. Everything worked as expected after that.

Upvotes: -1

Salim Nadji
Salim Nadji

Reputation: 785

if you have another terminal session of VS code opened,just close it and try again, it will work fine.

Upvotes: -1

piedramania
piedramania

Reputation: 160

In my case the problem was the file [git_install_dir]/etc/nsswitch.conf

I previously followed the instructions given here: https://cygwin.com/faq.html#faq.using.startup-slow. But this caused the "Could not fork" error instead. My wrong nsswitch.conf file was:

passwd: files
group: files

So I restored the file and problem solved. Now my [git_install_dir]/etc/nsswitch.conf is:

passwd: files db
group: files # db
db_enum: cache builtin
db_home: env windows cygwin desc
db_shell: env windows # cygwin desc
db_gecos: env # cygwin desc

Upvotes: 1

Sharon
Sharon

Reputation: 596

In my case, I needed to kill sh.exe taskkill /F /IM sh.exe

Upvotes: 1

cag8f
cag8f

Reputation: 968

In my case, I had a stray abd.exe that was still open in task manager. Killing it fixed the issue.

Upvotes: -1

Vatsal Shah
Vatsal Shah

Reputation: 1442

In my Case I need to kill Git bash in Windows. So opened Command Prompt and ran below command

$ tasklist

It will list down all running tasks, then need to kill bash.exe task using below command

$ taskkill /F /IM bash.exe 

Upvotes: 6

For windows, in task-manager kill sh.exe.

Upvotes: 0

Federico Caccia
Federico Caccia

Reputation: 1897

In my case, it was related with the use of VS code. Previously I have opened VS code using a git bash terminal and executing

code .

then closing the terminal.

The problem is solved by closing all the VS code windows opened.

When you have any editor or IDE configure to open a terminal as git bash, then when the IDE/IDE is running, the git bash will spin up bash from "C:\Windows\System32\bash.exe" and any other attempt to open bash from a separate window is likely to crash.

The best solution is to kill the IDE/Editor bash and open from a new window or continue from the IDE/Editor command.

Upvotes: 93

Yala Yala Herzlin
Yala Yala Herzlin

Reputation: 632

Im my case, the solution was to close Visual Studio Code -where I had console running too without noticing-

After closing it all back to normal. Hope this helps someone.

Upvotes: 1

Scott Newson
Scott Newson

Reputation: 2835

Found a similar issue and solution in google groups

I opened a windows command prompt and ran the command

$ tasklist

It looks as though the ssh connections I had made in my git bash shells weren't being closed when those windows were closed and were hanging the available git bash shell windows.

This may be a dangerous solution but from the windows command prompt I ran

$ taskkill /F /IM ssh.exe 

Everything appears to be working again after this. It may not have directly been an issue of orphan processes, but this worked for at least for me.

Additional note: you can also kill other processes, for example like:

$ taskkill /F /IM vim.exe

Upvotes: 111

Radim Šafrán
Radim Šafrán

Reputation: 608

Windows 10 this worked for me:

1) open cmd as administrator

2) type:

taskkill /f /im git-bash.exe


3) If there was an Error: The process "ssh-agent.exe" not found. then:

type:

tasklist

4) Find and kill every process with words like "bash" or "git" (This may be a dangerous solution, but once you will find the process name, next time you will know.)

taskkill /f /im ***.exe

Upvotes: 1

Sonic Soul
Sonic Soul

Reputation: 24949

finally figured out what was causing this.

if we use code like this (explicitly or implicitly) i.e. in .bashrc file

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

it spawns a new process.

if you don't exit it and just close the window, that process is still running. so each new bash opened just keeps adding new ones w/out disposing old ones.

when done with a bash window, simply hit ctrl+d or type exit to kill the agent process, and you should not run out of forks.

Upvotes: 6

Akshay Salvi
Akshay Salvi

Reputation: 197

Just Restart Your Machine, While Restarting our machine this issue is solved try it.

Upvotes: -2

Damian Czapiewski
Damian Czapiewski

Reputation: 881

In system bash type:

ps

Kill any bad looking process:

kill -9 <ID>

Worked for me.

Upvotes: -1

klimat
klimat

Reputation: 24991

To make life easier (this problems happens quite often) create a file called fixbash.bat in home directory and paste this:

taskkill /F /IM ssh-agent.exe

When problem occurs just open cmd and type fixbash.bat to fix a problem.

Or

Just paste the taskkill command into your cmd if you don't want to create a script.

Upvotes: 7

Justin
Justin

Reputation: 137

If you are using Visual Studio Code and you can't find ssh-agent.exe or can't taskkill it and after opening Git Bash you get that error, just go to your VSCode open Terminal>New Terminal and just press the trashbin icon the (Kill Terminal). e.g (1:bash) if you got multiple then just kill them all and you should be good.

Upvotes: 3

Sam96
Sam96

Reputation: 1920

Seems to be an issue with the processes launched from the git bash indeed, like @mamacdon suggested in his comment on the top answer by @Scott Newson.

For me, the issue appeared if I launched a vscode from the bash with code, and if this instance of vscode launched an integrated git terminal while the original bash was still running.

Doesn't matter whether that terminal was launched at the start or later, as long as it was while the original bash was still running.

Didn't happen when the bash was closed before the integrated terminal was opened. Didn't differentiate between exit and closing bash via windows. Didn't happen with another older bash window still running.

The way to deal with it was for me to close the terminals in vscode with exit or 'Kill Terminal' (be careful not to mix that up with 'close pane'), or of course, closing vscode itself.

If you get this error try to remember what you launched from the bash and kill it. If the other answers worked for you, it's probably just that these are the things launched by your bash or launched by processes you launched from the bash and they somehow were getting a child of your original bash.

Upvotes: 3

mhand
mhand

Reputation: 1277

In my case I had visual studio code running and closing it resolved the issue.

Upvotes: 1

Bahti
Bahti

Reputation: 21

Open Task manager, find bash.exe process and kill it. Helped in my case.

Upvotes: 1

Hari
Hari

Reputation: 127

Open task manager and kill process with name bash, this worked for me.

Upvotes: 8

Sohan Jangid
Sohan Jangid

Reputation: 158

Please find the ssh-agent process in the Task Manager window. After you stop or kill the ssh-agent process the error will disappear.

Upvotes: 1

Joe Shelby
Joe Shelby

Reputation: 66

On a more recent version of git for windows, the process to kill in task manager was "GitExtensions.exe". Killed that and the terminals restarted with no issues.

Upvotes: 1

Grace Nikole
Grace Nikole

Reputation: 103

Open your Task manager, search "sh" procces and kill them. Good luck

Upvotes: 2

Return_Of_The_Archons
Return_Of_The_Archons

Reputation: 1789

I address this with a workaround:

  1. Close the Git Bash window.
  2. Open Task manager.
  3. Find the 'Git for Windows' process.
  4. Kill it.
  5. Open Git Bash.

It should be ok now.

Upvotes: 43

Related Questions