Git bashエラー:子プロセスをフォークできませんでした:使用可能なターミナルがありません(-1)


191

以前は、最大8つのgit bashターミナルを同時に実行していました。

現在、私は2つしかありません。

これまでにこのエラーを見たことがなく、何が原因であるのか理解できません。

何か助けていただければ幸いです!

添付画像:

ここに画像の説明を入力してください


10
bashプロセスを強制終了するのがうまくいきました。
bfranzen

37
現在のすべての回答に対して-1。「ただターミナルを殺してやり直してください」のすべてのバリエーション。根本的な問題は何ですか?なぜ100台の端末を使用できないのですか?
RJFalconer

32
私はこの問題を長い間抱えていて、その根底にたどりつくことができませんでした。一部のハンドルが開いたままになる可能性がある開いたままのアプリケーションのようですが、私の場合、bashプロセスが閉じられていて、sshプロセスがありません(私はを使用していますmosh)。私はvscodeを使用してvscodeを起動しvscode .、それを開くために使用されたターミナルを閉じることによって問題を再現することができました。vscodeウィンドウは開いたままですが、Cygwinはそれ以上のターミナルを開きたくないようです。閉じるとすぐに機能します。
Elven Spellmaker、2018年

25
@ElvenSpellmakerそうですねcode .、私の場合にも関係があります。
ビラルKhoukhi

15
確認のために:今日問題が発生したのcode .は、私の場合も原因でした。VSコードを閉じると問題が解決しました。素晴らしい発見@ElvenSpellmaker
kb。

回答:


83

Googleグループで同様の問題と解決策を見つけた

Windowsコマンドプロンプトを開いてコマンドを実行しました

$ tasklist

私のgit bashシェルで作成したssh接続は、それらのウィンドウが閉じられていて、利用可能なgit bashシェルウィンドウがぶら下がっていたときに閉じられていなかったようです。

これは危険な解決策かもしれませんが、Windowsコマンドプロンプトから実行しました

$ taskkill /F /IM ssh.exe 

この後、すべてが再び機能しているように見えます。孤立プロセスの直接的な問題ではなかったかもしれませんが、これは少なくとも私にとってはうまくいきました。

追加の注記:次のような他のプロセスを強制終了することもできます。

$ taskkill /F /IM vim.exe

6
この手順はうまくいきましたが、私の場合、犯人はnode.exe(Node.js)とlink.exe(GNU link)でした。そのため、有罪のプロセスについてタスクリストを探す必要があるかもしれません。理由はわかりませんが、Bashセッション内から起動されたプログラムは、親シェルよりも長生きする可能性があるようです。
mamacdon 2017

1
スコットさん、この手順は@mamacdonによって言及されたように機能しました。
S52

21
私にとっては、 "taskkill / F / IM ssh-agent.exe"を実行する必要がありましたが、賛成投票には十分近かったです。
Dylan Kapp

12
コマンドでnode.exeを強制終了しましたtaskkill /F /IM node.exe
Tarator

1
私の場合(Cygwinを使用)、それはまだ実行中の単一のadb.exeでした。それを殺すことは解決しました。
Diego Andrade

58

exitを使用せずにgit bashコンソールを強制終了すると、git bashのウィンドウに問題が表示されます。問題を修正するために、Windowsタスクマネージャーからssh-agent.exeタスクを強制終了しました。


4
これは最初はうまくいきました。ssh-agent.exeを強制終了した後でも、まだ取得できます。
レオ

1
これは短期的な解決策です。問題は最終的に再発します。この問題を修正するより永続的な方法があることを願っています
Sonic Soul

1
私はまた、Nodeが実行されたままになることもあり、それを殺すだけで問題が解決したようです。
MusicDev

プロセス「sh.exe」を終了した後、問題は解決しました。皆さんありがとう。
マリス

「winpty-agent.exe」を殺すことは私のために働きました。
demstair

48

私の場合、それはVSコードの使用に関連していました。以前、私はgit bashターミナルを使用してVSコードを開いて実行しました

code .

その後、ターミナルを閉じます。

この問題は、開いているすべてのVSコードウィンドウを閉じることで解決します。

ターミナルをgit bashとして開くように設定されたエディタまたはIDEがある場合、IDE / IDEが実行されているとき、git bashは "C:\ Windows \ System32 \ bash.exe"からbashを起動し、その他の試み別のウィンドウからbashを開くと、クラッシュする可能性があります。

最良の解決策は、IDE /エディターbashを強制終了して新しいウィンドウから開くか、IDE /エディターコマンドから続行することです。


4
おかげで、それは私と同じ問題でした
Tarun Nagpal

1
魅力のように働いた!ありがとう!
jrend

1
同じ問題があった。cmdでコードを開くだけです。
リチャード

まったく同じ問題。ありがとう。
Lucien Lu

まったく同じ問題。とにかくありがとう。
アマーディープ

33

私は回避策でこれに対処します:

  1. Git Bashウィンドウを閉じます。
  2. タスクマネージャを開きます。
  3. 「Git for Windows」プロセスを見つけます。
  4. それを殺します。
  5. Git Bashを開きます。

今は大丈夫です。


3
最も簡単なソリューション。とても簡単です。
JkAlombro

2
私の場合、bash.exeを実行していて、それを強制終了しました。
Gilberto Albino、

8

人生を楽にするために(この問題はかなり頻繁に起こります)fixbash.bat、ホームディレクトリに呼ばれるファイルを作成し、これを貼り付けます:

taskkill /F /IM ssh-agent.exe

問題が発生した場合は、開いcmdて入力するだけfixbash.batし、問題を修正します。

または

cmdスクリプトを作成したくない場合は、taskkillコマンドをに貼り付けてください。


2
戻り値:ERROR: The process "ssh-agent.exe" not found.
Jesse Reza Khorasanee

このソリューションは私のために働いた。ただし、タスクマネージャーに移動して、すべてのssh-agent.exeを強制終了する必要があります
Javaメイン

6

マシンを再起動します。

(他の答えは私にとってはうまくいきませんでした。(私は再インストールを試みませんでした。再起動はおそらくより速いです。))


3
それでもうまくいかない場合は、マシンを再インストールするか、新しいマシンを購入してください。
john16384

6

私(または分度器を実行している、スタンドアロンのSelenium / WebDriverサーバーを起動する可能性がある人)にはtaskkill特定のWebドライバーが必要でしたは、テストを実行してが。

だからちょうど異なる引数:またはあなたのchromedriver バージョンが異なる場合があります

taskkill /f /im chromedriver_2.34.exe

ドライバーが異なる場合があることに注意してください: IEDriverServer*.*.*.exevschromedriver_*.**exe

ドライバーのバージョンは異なる場合があります:chromedriver_2.34.exevschromedriver_2.33.exe

自動化された/ test-drivenブラウザーを閉じずに分度器を終了した後、この問題はさらに悪化しました(別の問題のため、まだ理解していません)。当然、多くのchromedriverタスクが実行されたままなので、それらを強制終了します。


3
うん、これは私の問題でした。JavaScriptを処理する必要があるためcurlとwgetを使用できないWebサイトからSeleniumを使用していくつかのものをフェッチする便利なスクリプトがあります。とにかく、私は通常これを朝1回実行し、時々ハングアップします。この投稿を見るまで、私はこのcygwinエラーとの相関関係を作成したことがありませんでした。終了する前に、セレンを呼び出してchromedriver.exeプロセスを強制終了するスクリプトを更新します。
ボーデ

6

タスクマネージャーを開き、bashという名前のプロセスを強制終了します。これでうまくいきました。


6

これは、既存のプロセスを終了せずにgit bashを終了すると発生します。git bashから開始したプロセスを実行して強制終了してください。私はgit bash内でノードプロセスを実行していたため、すべてのノードプロセスを強制終了しました。

  1. タスクマネージャーを開く
  2. 詳細タブに移動
  3. node.exeを探します(プロセスを探します)
  4. すべてのノードプロセスを強制終了する
  5. Git Bashをもう一度開きます

2
私の場合はそうだったadb shell。それで、私はadb kill-serverすでに開いているウィンドウで実行しました、そしてそれは私のためにそれを修正しました。+1
Lucidbrot

働いた。しかし、一体何を...私は何ヶ月もnode.jsをやっていません。
JMIマディソン

5

最終的にこれを引き起こしているものを理解しました。

このようなコードを(明示的または暗黙的に)使用する場合、つまり.bashrcファイル内

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

新しいプロセスを生成します。

終了せずにウィンドウを閉じるだけの場合、そのプロセスはまだ実行中です。したがって、新しいbashを開くたびに、古いものを破棄せずに新しいものを追加し続けるだけです。

bashウィンドウでの操作が完了したら、ヒットctrl+dまたは入力exitしてエージェントプロセスを強制終了します。フォークが不足することはありません。


3

@mamacdonが@Scott Newsonのトップアンサーに関するコメントで示唆したように、実際にgit bashから起動されたプロセスに問題があるようです。

私にとって、bashからvscodeを起動した場合に問題が発生しました code、およびこのvscodeのインスタンスが統合されたgitターミナルを起動した場合、元のbashがまだ実行されているときに問題が発生しました。

元のbashがまだ実行されている間であれば、その端末が最初に起動されたのか、それとも後で起動されたのかは関係ありません。

統合ターミナルが開かれる前にbashが閉じられたときには発生しませんでした。区別しなかったexitウィンドウを介してbashをして閉じ。まだ実行中の別の古いbashウィンドウでは発生しませんでした。

これに対処する方法は、vscodeでターミナルを閉じることでした exitターミナルを「Kill​​ Terminal」か(「ペインを閉じる」と混同しないように注意)、またはもちろん、vscode自体を閉じることでした。

このエラーが発生した場合は、bashから起動したものを覚えて、強制終了してください。他の答えがあなたのために働いたなら、おそらくこれらはあなたのbashによって起動されたもの、またはbashから起動したプロセスによって起動されたものであり、どういうわけか彼らは元のbashの子を取得していました。


3

Visual Studio Codeを使用していて、ssh-agent.exeが見つからないか、タスクキルできない場合、Git Bashを開いた後、そのエラーが表示されます。 (キルターミナル)。例:(1:bash)複数ある場合は、それらをすべて殺すだけで良いはずです。


3

私の場合、WindowsでGit bashを強制終了する必要があります。したがって、コマンドプロンプトを開き、コマンドの下で実行しました

$ tasklist

実行中のすべてのタスクを一覧表示し、次のコマンドを使用してbash.exeタスクを強制終了する必要があります

$ taskkill /F /IM bash.exe 


2

私の場合、解決策はVisual Studio Codeを閉じることでした-気付かずにコンソールも実行していました-

それをすべて閉じた後、通常に戻します。これが誰かを助けることを願っています。


1

タスクマネージャーですべてのgitターミナルを強制終了しようとすると、問題が解決します。これも私にとってはうまくいきます。幸運を。


1

git for windowsの最新バージョンでは、タスクマネージャーで強制終了するプロセスは「GitExtensions.exe」でした。それを殺し、端末は問題なく再起動しました。


1

タスクマネージャウィンドウでssh-agentプロセスを見つけてください。ssh-agentプロセスを停止または強制終了すると、エラーは消えます。


1

私の場合、ビジュアルスタジオのコードを実行して終了すると問題が解決しました。


1
なぜこれが反対投票になるのかわからない、私のために働いた。また、ビジュアルスタジオコードはターミナルを生成することができるため、この問題に影響を与える可能性があるのも当然です。
Jesse Reza Khorasanee、


0

タスクマネージャーでmsys2端末を強制終了すると問題が解決することがわかりました


0

タスクマネージャーを開き、bash.exeプロセスを見つけて終了します。私の場合に役立ちました。


0

これは私のために働いたWindows 10:

1)管理者としてcmdを開きます

2)タイプ:

taskkill /f /im git-bash.exe


3)エラーが発生した場合:プロセス「ssh-agent.exe」が見つかりません。次に:

タイプ:

tasklist

4)「bash」や「git」などの単語を使用してすべてのプロセスを見つけて強制終了します(これは危険な解決策になる可能性がありますが、一度プロセス名が見つかったら、次にわかります)。

taskkill /f /im ***.exe


0

私の場合、タスクマネージャーで開いたままのabd.exeがありました。それを殺すことで問題が修正されました。



-1

マシンを再起動するだけで、マシンを再起動しながら、この問題は解決しました。


4
「それがうまくいかない場合は、建物の電源を切って、もう一度差し込んでみてください。それがうまくいかない場合は、地元の電力会社に連絡して、近隣の電力会社全体の電源を切るよう依頼してください。しばらく
お待ちください

1
笑私も同じことをしました、ソリューションはかなりばかげているように聞こえますが、それはうまく機能します:)
zeroDivider
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.