Я использую команды Cygwin из моего приглашения Windows CMD в течение нескольких месяцев без проблем. В течение последних нескольких дней каждый раз, когда я вызываю команду Cygwin (например, ls
), команда занимает несколько секунд, чтобы "загрузить" до ее фактического запуска. Если я попробую одну и ту же команду из приглашения bash, она немедленно запускает ( "загружает" ).
В Cygwin FAQ упоминается, что сетевые диски в PATH могут вызвать проблемы, поэтому я пробовал некоторые перестановки моей переменной PATH
и сетевого подключения. Ниже "full PATH
" означает мою первоначальную настройку пути; "short PATH
" означает путь только с каталогом bin Cygwin. Время сообщается с помощью команды time
.
Результаты синхронизации для ls
Подключено к сети:
- Запустите
ls
внутриbash
: 0.124 с - Запустите
ls
внутри CMD (полныйPATH
): 41.29 s - Запустите
ls
в CMD (короткийPATH
): 38.56 с
Отключено от сети:
- Запустите
ls
внутриbash
: 0.125 с - Запустите
ls
в CMD (полныйPATH
): 0,17 с - Запустите
ls
в CMD (короткийPATH
): 0,19 с
Результаты для cygcheck
Я побежал cygcheck -s
и заметил:
Warning: There are multiple cygwin1.dlls on your path
хотя это может быть связано с запуском cygcheck
из каталога Cygwin bin
. Я полностью удалил и переустановил Cygwin и все еще вижу ту же проблему.
Результаты netstat
Я запускал netstat -a -n
перед выполнением Cygwin ls
и после выполнения (пока он застопорен). Я делал это несколько раз и обнаружил одну строку от каждого прогона, которая постоянно появлялась во время задержки:
UDP 127.0.0.1:55030 *:*
Номер порта изменился с теста на тест.
strace
результаты
Я запустил Cygwin strace
в команде ls
. Большая часть задержки выполняется в таких вызовах, как:
11685 886560 [main] ls 10020 pwdgrp::fetch_account_from_windows: line: <xxxx>
и
12684 899244 [main] ls 10020 cyg_ldap::fetch_ad_account: No entry for (objectSid=\00\00\00\00) in xxxx DC=xxxx,DC=xxxx,DC=xxxx