最近、私はコンピューターにCygwinを再インストールして、欠落していたいくつかのコマンドライン要素にアクセスできるようにしました。 Cygwinでこれまで問題があったことはありませんが、この再インストール後、(ほぼ)各コマンドを入力した後、エラーメッセージが表示され続けます。例えば:
-bash-4.1$ wc m1.txt
3 [main] bash 2216 child_info_fork::abort: data segment start: parent(0x26D000) != child(0x38D000)
-bash: fork: retry: Resource temporarily unavailable
2013930 4027950 74968256 m1.txt
通常、コマンドは引き続き実行されます(上記参照)が、常にではありません。時折、「エラー」メッセージが数回連続して発生します(最初の番号「3」は、特に2番目のCygwinウィンドウを起動すると、「4」または「2」に変わります。
また、Cygwinを起動するとすぐに、プロンプトの前に次のメッセージが表示されます。
3 [main] bash 6140 child_info_fork::abort: data segment start: parent(0x26D000) != child(0x36D000)
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: Resource temporarily unavailable
-bash-4.1$
現時点では、Cygwinを再度アンインストール/再インストールするか、エラーメッセージをそのまま表示するかを議論していますが、気付いていない問題があるのではないかと思いました。
(CygwinがC:\ Cygwinにインストールされていると仮定):
$
のみで表示されるはずです/usr/bin/rebaseall -v
と入力してEnterキーを押し、プロセスが完了するまで待ちます。cd /usr/bin && ./rebaseall -v
と入力する必要がある場合があると指摘しました。このプロセスはうまくいきました。皆さんにもお役に立てば幸いです。
Cygwinを再インストールした後に行う必要があるため、上記の回答に次を追加したいと思います。
「/ usr/bin」ディレクトリ(通常はC:\ cygwin\bin)に移動し、管理者としてファイルを右クリックして実行します。dash.exe次に、$プロンプトで次を入力し、各行の後にEnterキーを押します。
cd /usr/bin/
/usr/bin/peflags * -d 1
/usr/bin/rebaseall -v
それは、dllを「リベース可能」としてマークし、リベースします。上記のファイル(以前の回答)に加えて、peflags.exeが必要です。これを行った後、ウィンドウを再起動する必要があり、実行中のcygwinに属するプロセスやサービスがないことを確実に確認する必要があります。 (タスクマネージャーを使用し、関連するプロセスを強制終了し、[サービス]タブでCYGで始まるサービスを探して停止します。)
これを行った後、間違ったアドレスにdllがロードされているというエラーもなく別名フォークエラーなどでcygwinを実行することができました.
見つけるのが苦痛だったので、これが他の人を助けることを願っています。
SOURCE: http://www.cygwin.com/faq.html#faq.using.fixing-fork-failures
and the rebase README file.
ここで他の回答に追加するために、同じ問題に遭遇しましたが、アッシュまたはダッシュシェルからrebaseコマンドを実行できませんでした。ただし、Windows cmdシェルからコマンドを起動すると、次のように機能しました。
cmd /c "C:\cygwin64\bin\ash.exe /usr/rebaseall -v"
-vは詳細な出力を取得します
私はここで別の情報を見つけました: http://cygwin.com/ml/cygwin/2014-02/msg00531.html /etc/rebase.db*のデータベースを削除し、 "ash" windows:peflags * -d 1 rebaseall 2台のサーバーで動作します。
コンピューターを再起動することでこの問題を解決しました。おそらくドライバーの更新プログラムをインストールし、シャットダウンする代わりにスリープを使用し続けました。
BabunのCygwinを使用している場合、rebaseallの後、Windowsコマンドプロンプトまたはエクスプローラーで.babun\cygwin\cygwin.batを実行してCygwinを起動してみてください。
これは私のために機能します(babunのデフォルトコンソールを起動している間-minttyはフォークエラーになります)。
Cygiwin-2.dllフォークでCygwinをロードし、Cygwinターミナルで正常にロードしないときに同じ問題が発生しましたが、AntiVirus(特にAd-aware)をオフにした後、問題は解決し、Cygwinは正常に動作しました。
私の場合、Rebase
ingは役に立ちませんでした。他の人が提案したことに加えて、PATH
環境変数の長さを減らすことで私(および他の人だけでなく this answerからわかるように)の問題が修正されたことに気付きました。
この問題は本質的に断続的であり、AWSのリモートマシンに接続するにはネットワークが遅すぎるときにこの問題を発見しました。 ..ほとんどの場合、正しく実行されましたが、この問題が発生するのは100回2回です。bash:fork:retry:リソースが一時的に利用できません ....この問題について...マイナス面は、最初からスクリプトを実行する必要があることです...
Win10でエラーが発生し、インストール前にc:にリベースしようとしました。その後、インストーラが代わりにc:/ Users/myuserにインストールしているのを見たので、c:/ Users/myuserからc:.badunにすべてのファイルをコピーしてから、再起動してbadun.batを開きました
これが賢明だった場合、XDが複製されたのかどうかはわかりませんが...