我一直在使用我的Windows CMD提示符中的Cygwin命令几个月没有问题.在过去几天内,每次调用Cygwin命令(ls
例如)时,该命令在实际运行之前需要几秒钟才能"加载".如果我在bash提示符中尝试相同的命令,它会立即运行("加载").
在Cygwin的常见问题提到了路径的网络驱动器可能会产生问题,所以我已经尽我的一些排列PATH
变量和网络连接.下面,"完整PATH
"表示我原来的路径设置; "short PATH
"表示仅包含Cygwin bin目录的路径.通过time
命令报告时间.
ls
连接到网络:
ls
范围bash
:0.124秒ls
在CMD内运行(完整PATH
):41.29秒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
Run Code Online (Sandbox Code Playgroud)
虽然这可能是因为cygcheck
从Cygwin的bin
目录中运行.我完全卸载并重新安装Cygwin仍然看到同样的问题.
netstat
我netstat -a -n
在执行Cygwin之前跑了ls
并且在执行之后(当它停止时).我这样做了好几次,发现每次运行中有一行在延迟期间一直出现:
UDP 127.0.0.1:55030 *:*
Run Code Online (Sandbox Code Playgroud)
端口号从测试变为测试.
strace
结果我strace
在ls
命令上运行了Cygwin's .大部分延迟都花费在以下呼叫上:
11685 886560 [main] ls 10020 pwdgrp::fetch_account_from_windows: line: <xxxx>
Run Code Online (Sandbox Code Playgroud)
和
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
Run Code Online (Sandbox Code Playgroud)
tbh*_*man 21
Cygwin常见问题解答中的一节介绍了启动时间慢的情况.Cygwin最近更改为使用Active Directory查找进行身份验证,而不是使用平面文件.改变默认设置/etc/nsswitch.conf
从
passwd: files db
group: files db
Run Code Online (Sandbox Code Playgroud)
至
passwd: files
group: files
Run Code Online (Sandbox Code Playgroud)
跳过AD查找.我的Cygwin命令现在再次快速.
归档时间: |
|
查看次数: |
4471 次 |
最近记录: |