Nagle wszystkie polecenia Cygwin, które uruchamiam z wiersza poleceń systemu Windows, mają około 10-20 sekundowe opóźnienie przed ich wykonaniem, dzięki czemu Cygwin staje się całkowicie bezużyteczny. Próbowałem już zainstalować bez powodzenia.
Wykonywanie poleceń z poziomu okna powłoki Bash działa dobrze (podczas uruchamiania Bash widzę opóźnienie). Usunięcie wszystkich wpisów z mojej lokalnej zmiennej PATH nie ma wpływu. Używam Windows 7 x64 i Cygwin x64 v 1.7.34 (0.285 / 5/3).
windows-7
windows
command-line
cygwin
85fce
źródło
źródło
C:\cygwin\bin>.\ls.exe <ENTER>
Odpowiedzi:
Czasami pracuję w domenie Windows z tysiącami użytkowników.
Nie chcę się zgadywać. Wolę Cygwin buforować informacje o użytkowniku w miarę potrzeb. Okazuje się, że jest to łatwe do zrobienia.
Po prostu uruchom
cygserver
przy logowaniu.Aby ustawić to poprawnie, uruchom
cygserver-config
tylko raz. Spowoduje to skonfigurowaniecygserver
do działania jako usługa systemu Windows z prawidłowymi poświadczeniami. Zrób to z okna administratora Cygwin.Co mi robi
cygserver
?Zajrzyj do dokumentacji na stronie Cygwin . Zasadniczo robi to buforowanie przez użytkownika, a także zapewnia, że IPC działa między wszystkimi procesami Cygwin .
Twój przebieg może się oczywiście różnić, ale teraz jest to mój ulubiony sposób pracy. Powinienem był to zrobić lata temu.
źródło
/usr/bin/cygserver-config: line 181: cygrunsrv: command not found
,C:/cygwin64/bin
jest włączonyPATH
, działa jako administrator ...C:\cygwin64\bin\cygrunsrv.exe
istnieje? Czy błędnie użyłeś ukośników (/
) w swoim%PATH%
? Czy pakiet cygrunsrv jest zainstalowany?C:\cygwin64\bin\cygrunsrv.exe
nie istnieje, zainstalowałemcygrunsrv: NT/W2K service initiator
pakiet i wszystko działa.Wydaje się, że ma to związek z uwierzytelnianiem. Dla mnie 40 sekund, aby dostać coś do wykonania. Po tym jednak tworzenie procesu w tym drzewie procesów wydaje się dość szybkie.
https://www.cygwin.com/faq.html#faq.using.startup-slow
Więc ja
Utworzyłem pamięć podręczną lokalnego uwierzytelnienia i własne poświadczenia usługi Active Directory (AD)
Powiedziałem Cygwinowi, żeby używał tych dwóch plików
Zabiłem wszystkie procesy Cygwina i zacząłem od nowa. Wszystko działa teraz ładnie i szybko. Usunę ten hack przy każdej aktualizacji pliku Cygwin DLL i zobaczę, jak sobie radzę.
To tylko szkic - przynajmniej będziesz chciał zachować kopie zapasowe!
EDYTOWAĆ
Przestarzałe. Zobacz moją najnowszą odpowiedź na to pytanie, aby uzyskać lepsze (IMHO) rozwiązanie.
źródło
Przeczytaj poniższą aktualizację, okazało się, że to nie jest problem.
Cierpię na skrajną wersję tego problemu, chociaż jest on sporadyczny. Gdy problem występuje, wszystkie polecenia trwają od 20 sekund, aw najbardziej ekstremalnych przypadkach kilka minut. Będzie to miało miejsce przez kilka dni, a następnie zniknie na kilka dni. BTW, mam niezwykle szybki system z dużą ilością pamięci DRAM, SSD itp.
W końcu mam teorię kandydatów, która może wyjaśnić różne rzeczy. Właśnie zaktualizowałem Cygwin za pomocą setup-x86_64.exe (co robię rzadko), a potem wszystko znów jest bardzo responsywne (dosłownie 1000 razy szybciej niż wcześniej). Domyślam się, że rebaseall pod koniec aktualizacji zrobił różnicę.
Aktualizacja: przyspieszenie, które widziałem wcześniej, było najwyraźniej zbiegiem okoliczności; gdy problem pojawił się miesiąc później, to nie rozwiązało problemu. Okazuje się, że wyłączenie ochrony na żywo Windows Defender natychmiast rozwiązało spowolnienie.
źródło
W przypisie właśnie odkryłem, że muszę zaktualizować pliki
passwd
igroup
po aktualizacji Cygwin. Poniewaz powolne zachowanie dzialalo sie ponownie, wykonanie instalacji przez autorebase trwało kilka dni.Nie musiałem również modyfikować domyślnego pliku nsswitch.conf w moim systemie (Windows 10).
Nawiasem mówiąc, powolne zachowanie ujawniło się również w wierszu polecenia systemu Windows i aplikacjach przenośnych. Po uruchomieniu niektóre przenośne aplikacje potrzebowały kilku godzin.
źródło
W ten sposób objawił mi się ten problem. Po pierwsze, powiedzmy 20, polecenia wprowadzone po znaku zachęty Cygwin były szybkie, ale nagle stały się boleśnie powolne.
Próbowałem powyższej poprawki uwierzytelnienia. Nie działało to dla mnie.
Cygwin FAQ informuje, że Cygwin nie lubi spacji w nazwach użytkowników lub grup. Zobacz Nazwa logowania do systemu Windows ma spację, czy spowoduje to problemy? .
Nazwa mojej grupy zawierała spację, więc zmieniłem ją w
/etc/group
pliku wygenerowanym w poprawce uwierzytelnienia na podkreślenie. To też nie działało.Inne posty dotyczące tego samego problemu informowały, że ma to miejsce w przypadku skanera antywirusowego. Mój dotychczasowy skaner antywirusowy (System Center Endpoint Protection) zastąpiłem Sophos. To rozwiązało problem.
Mam nadzieję, że to pomoże.
źródło
Przez pewien czas miałem problem z powolnym wykonywaniem kompilacji na cygwin.
Byłem zmuszony zaktualizować wczoraj i natknąłem się na problem rebaseall po prostu nie wykonujący. Zmusiło mnie to do zagłębienia się w inne rzeczy i znalazłem raport, o którym wiadomo, że Trusteer Rapport / End Point Protection powoduje problemy z rebaseall i spowalnia czas reakcji. Więc usunąłem go za pomocą zwykłej metody odinstalowywania programów Windows za pomocą Panelu sterowania.
Następnie wykonałem rebaseall z interfejsu deski rozdzielczej uruchomionego jako administrator.
Oznacza to, że (win7) z menu startowego wpisz myślnik. Pojawi się skrót myślnika. Kliknij prawym przyciskiem myszy, aby uruchomić się jako administrator. Następnie, gdy jest włączony, wykonaj:
/ usr / bin / rebaseall -v
Idź na kawę ... Siedzi przez kilka sekund, zanim wyświetli wynik, jeśli siedzi i nie robi nic przez więcej niż 5 minut, masz inny problem.
To naprawiło rebaseall, ale także znacznie zwiększyło szybkość mojej kompilacji. Warto sprawdzić, czy masz zainstalowany, spróbuj go usunąć.
źródło
c:\msys64\user\bin\dash.exe
. Aby uruchomić go jako administrator, musiałem utworzyć do niego skrót na pulpicie. Niestety nie naprawiło to mojego wolnego