J'ai récemment réinstallé Cygwin sur mon ordinateur pour pouvoir accéder à plusieurs éléments de ligne de commande qui me manquaient. Je n’ai jamais eu de problèmes avec Cygwin, mais après cette réinstallation, un message d’erreur persiste après (presque) chaque commande entrée. Par exemple:
-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
Généralement, la commande est toujours exécutée (comme on le voit ci-dessus), mais pas toujours. Parfois, le message d'erreur apparaît plusieurs fois de suite (le nombre initial "3" deviendra alors "4" ou "2", notamment si je démarre une deuxième fenêtre Cygwin.
De plus, dès que je lance Cygwin, le message suivant s'affiche avant l'invite:
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$
Pour le moment, je suis en train de débattre de la question de savoir s'il faut désinstaller/réinstaller Cygwin à nouveau ou simplement afficher les messages d'erreur, mais j'étais curieux de savoir s'il pourrait y avoir un problème dont je ne suis pas au courant.
(en supposant que Cygwin soit installé dans C:\Cygwin):
$
/usr/bin/rebaseall -v
, appuyez sur Entrée et attendez que le processus soit terminé. cd /usr/bin && ./rebaseall -v
au lieu.Ce processus a fonctionné pour moi. J'espère que cela fonctionne pour vous aussi.
J'aimerais ajouter ce qui suit aux réponses ci-dessus, car c'est ce que je devais faire après la réinstallation de Cygwin:
Naviguez jusqu'au répertoire "/ usr/bin" (généralement, C:\cygwin\bin) et cliquez avec le bouton droit de la souris sur, Exécuter en tant qu'administrateur, le fichier: dash.exe. Ensuite, à l'invite $, tapez ce qui suit en appuyant sur Entrée après chaque ligne:
cd /usr/bin/
/usr/bin/peflags * -d 1
/usr/bin/rebaseall -v
Qu'est-ce qu'il fait est, il marque la DLL comme "rebase-possible", puis les rebase. Vous devez avoir peflags.exe en plus des fichiers ci-dessus (dans les réponses précédentes). Vous devrez peut-être redémarrer Windows après cette opération et vous devrez absolument vous assurer qu'aucun processus ni aucun service appartenant à cygwin n'est en cours d'exécution. (Utilisez le gestionnaire de tâches, supprimez tous les processus associés, puis, sous l'onglet services, recherchez tout service commençant par CYG et arrêtez-le.)
Après cela, j’ai pu faire fonctionner cygwin sans erreur de chargement des dll aux mauvaises adresses, telles que les erreurs de fourche, etc.
J'espère que cela aide les autres, car c'était difficile à trouver.
SOURCE: http://www.cygwin.com/faq.html#faq.using.fixing-fork-failures
and the rebase README file.
Pour ajouter d'autres réponses ici, nous avons rencontré le même problème, mais nous n'avons pas pu exécuter la commande rebase à partir du shell ash ou dash. Toutefois, lors du lancement de la commande à partir du shell de commande Windows, les éléments suivants ont fonctionné.
cmd /c "C:\cygwin64\bin\ash.exe /usr/rebaseall -v"
-v est d'obtenir une sortie verbeuse
J'ai trouvé une autre information ici: http://cygwin.com/ml/cygwin/2014-02/msg00531.html Vous devez supprimer la base de données à /etc/rebase.db* et le faire dans un "cendres" windows: peflags * -d 1 rebaseall Cela fonctionne pour moi sur 2 serveurs.
J'ai résolu ce problème en redémarrant mon ordinateur. Probablement installé une mise à jour du pilote et gardé en veille au lieu d'arrêter.
Si vous utilisez le programme Cygwin de Babun, essayez de lancer Cygwin après rebaseall en exécutant .babun\cygwin\cygwin.bat dans une invite de commande Windows ou dans l'Explorateur Windows.
Cela fonctionne pour moi (lors du lancement de la console par défaut de babun - menthe provoque une erreur de fourche).
Nous avons rencontré le même problème lors du chargement de Cygwin avec cygiconv-2.dll et sans chargement dans le terminal Cygwin, mais après la désactivation de mon antiVirus (il était spécifiquement Ad-aware), le problème a été résolu et Cygwin a fonctionné correctement.
Rebase
ing n'a pas aidé dans mon cas. En plus de ce que d’autres ont suggéré, j’ai remarqué que la réduction de la longueur de la variable d’environnement PATH
corrigeait le problème pour moi (et pour d’autres personnes aussi bien que visible depuis this answer) .
Ce problème est de nature intermittente et j'ai trouvé ce problème lorsque le réseau est trop lent pour se connecter à la machine distante sur AWS .... J'ai un script Shell qui s'exécute via Gitbash Shell et se connecte à l'instance AWS EC2 avec ssh ... .. La plupart du temps, il a fonctionné correctement mais 2 fois sur 100, il est entré dans ce problème bash: fork: relance: ressource temporairement indisponible .... Tuer le terminal MSYS2 à partir du gestionnaire de tâches aide à surmonter avec ce problème .... Le côté négatif est que vous devez exécuter les scripts depuis le début ...
J'ai eu l'erreur sur win10 et j'essayais de rebase à c: avant d'installer. alors j'ai vu que le programme d'installation l'installait à la place de c:/Users/myuser, donc je copiais tous les fichiers de c:/Users/myuser vers c: .badun, puis redémarrez et ouvrez badun.bat
pas sûr si c'était sage son XD maintenant dupliqué ... mais alors cela a fonctionné à nouveau.