web-dev-qa-db-ja.com

Git bashエラー:子プロセスをforkできませんでした。使用可能な端末がありません(-1)

私は以前に最大8つのgit bash端末を同時に実行していました。

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

私は以前にこのエラーを見たことがなく、何が原因であるのか理解していません。

任意の助けは大歓迎です!

添付画像

enter image description here

104
A. Petrizza

こちらで同様の問題とその解決策が見つかりました。 https://groups.google.com/forum/#!topic/git-for-windows/EO27WWvHx64

あなたがまだこれに問題を抱えているかどうか私にはわかりませんが、私は私のために働く非常に単純な修正を見つけました。 Windowsのコマンドプロンプトを開き、$ tasklistコマンドを実行しました。

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

これは危険な解決策かもしれませんが、Windowsのコマンドプロンプトから$ taskkill/F/IM ssh.exeを実行しました。

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

49
Scott Newson

Exitを使用せずにgit bashコンソールを終了すると、git bashのウィンドウで問題が発生します。私は問題を解決するためにWindowsのタスクマネージャから殺害ssh-agent.exeタスクを見つけました。

42
Joe z

これを回避策で解決します。

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

今は大丈夫です。

17

マシンを再起動してください。

(他の答えは私のために働かなかった。(私は再インストールしようとしなかった。再起動はおそらくより速い。)

5
andydavies

生活を楽にするため(この問題は頻繁に発生します)、ホームディレクトリにfixbash.batという名前のファイルを作成し、これを貼り付けます。

taskkill /F /IM ssh-agent.exe

問題が発生したらcmdを開いてfixbash.batとタイプして問題を解決してください。

または

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

5
klimat

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

  1. タスクマネージャを開く
  2. ジャンプ詳細タブ
  3. Node.exeを探します(あなたが探しているプロセスを探します)
  4. すべてのノードプロセスを強制終了する
  5. Git Bashをもう一度開く
4
Ishan

タスクマネージャを開き、bashという名前でプロセスを強制終了します。これは私にとって役に立ちました。

4
Hari

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

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

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

統合端末が開かれる前にbashが閉じられたときには起こりませんでした。 exitとウィンドウでbashを閉じることを区別しませんでした。別の古いbashウィンドウがまだ実行されていても起こらなかった。

それに対処する方法は、私がvscodeの端末をexitや 'Kill Terminal'で閉じる( 'close pane'と混同しないように注意する)か、もちろんvscode自体を閉じることでした。

このエラーが出た場合は、bashから起動した内容を思い出してそれを殺してください。他の答えがあなたのために働いた場合、それはおそらくちょうどこれらがあなたのbashによって起動されたもの、またはbashから起動されたプロセスによって起動されたものであり、何らかの形で元のbashの子になっています。

3
Sam96

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

それで、ただ違う議論をしてください:あるいはあなたのchromedriverバージョンは変わるかもしれません

taskkill /f /im chromedriver_2.34.exe

ドライバは異なる場合があります。IEDriverServer*.*.*.exechromedriver_*.**exe

あなたのドライバはバージョンが異なるかもしれません:chromedriver_2.34.exe vs chromedriver_2.33.exe

分度器を自動/テスト駆動型ブラウザを閉じずに終了した後、この問題はさらに悪化しました(まだ分からない別の問題のため)。当然、chromedrivername__タスクが多数残っています実行している、それはそれらを殺す理由です。

3
The Red Pea

最後に、これが何を引き起こしているのかを把握しました。

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

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

それは新しいプロセスを生み出す。

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

bashウィンドウを使い終わったら、単にctrl+dを打つかexitと入力してエージェントプロセスを終了させて​​ください。フォークを使い果たしてはいけません。

3
Sonic Soul

タスクマネージャを開き、 "sh"プロセスを検索してそれらを殺します。がんばろう

2
Grace Nikole

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

2
Justin Balaguer

Windows用gitのより新しいバージョンでは、タスクマネージャでkillするプロセスは "GitExtensions.exe"でした。それを殺し、端末は問題なく再起動しました。

1
Joe Shelby

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

1
Sohan Jangid

私はタスクマネージャですべての私のgit端末を殺そうとしましたが問題を解決しました。これは私にも働きます。がんばろう。

1

Gitを再インストールしたところ、今は正常に動作しています。

0
prathesh p

私の場合は、Visual Studioのコードを実行して閉じて問題を解決しました。

0
mhand

タスクマネージャを開き、bash.exeプロセスを見つけてそれを殺します。私の場合は助かりました。

0
Bahti

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

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

2)タイプ:

taskkill /f /im git-bash.exe


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

タイプ:

tasklist

4)「bash」や「git」などの単語ですべてのプロセスを見つけて強制終了します(これは危険な解決策かもしれませんが、プロセス名が見つかると、次回はわかります)。

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

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

0
user2293554

開いているすべてのコマンドラインウィンドウを閉じることで、この問題を解決することができました。

0
Charith