突然,我从Windows命令行启动的所有Cygwin命令在执行之前都有大约10-20秒的延迟,因此Cygwin变得完全不可用。我已经尝试过重新安装,但没有成功。
从Bash shell窗口中执行命令可以正常工作(启动Bash时我看到了滞后)。从我的本地PATH变量中删除所有条目不会产生影响。我使用Windows 7 x64和Cygwin x64 v 1.7.34(0.285 / 5/3)。
突然,我从Windows命令行启动的所有Cygwin命令在执行之前都有大约10-20秒的延迟,因此Cygwin变得完全不可用。我已经尝试过重新安装,但没有成功。
从Bash shell窗口中执行命令可以正常工作(启动Bash时我看到了滞后)。从我的本地PATH变量中删除所有条目不会产生影响。我使用Windows 7 x64和Cygwin x64 v 1.7.34(0.285 / 5/3)。
Answers:
有时,我在具有数千个用户的Windows域中工作。
我不想做任何猜测。我希望Cygwin根据需要缓存用户信息。事实证明,这很容易做到。
只需cygserver
登录运行。
要正确设置,请cygserver-config
仅运行一次。这将设置cygserver
为使用正确的凭据作为Windows服务运行。从管理员 Cygwin窗口执行此操作。
$ cygserver-config
Generating /etc/cygserver.conf file
Warning: The following function requires administrator privileges!
Do you want to install cygserver as service?
(Say "no" if it's already installed as service) (yes/no) yes
The service has been installed under LocalSystem account.
To start it, call `net start cygserver' or `cygrunsrv -S cygserver'.
Further configuration options are available by editing the configuration
file /etc/cygserver.conf. Please read the inline information in that
file carefully. The best option for the start is to just leave it alone.
Basic Cygserver configuration finished. Have fun!
什么是cygserver
对我做什么?
在Cygwin站点上查看文档。基本上,它负责用户缓存内容,并确保IPC在所有Cygwin进程之间都能正常工作。
当然,您的里程可能会有所不同,但这是我首选的工作方式。我应该在多年前完成。
/usr/bin/cygserver-config: line 181: cygrunsrv: command not found
,C:/cygwin64/bin
是上PATH
,以管理员身份运行...
C:\cygwin64\bin\cygrunsrv.exe
存在?您是否在自己的代码中错误使用了正斜杠(/
)%PATH%
?是否安装了cygrunsrv软件包?
C:\cygwin64\bin\cygrunsrv.exe
不存在,安装了cygrunsrv: NT/W2K service initiator
软件包,一切正常。
这似乎与身份验证有关。对我来说,需要40秒才能执行某些操作。在那之后,在该进程树中创建进程似乎非常快。
https://www.cygwin.com/faq.html#faq.using.startup-slow
所以我
缓存了我的本地身份验证和我自己的Active Directory(AD)凭据
$ mkpasswd -l -c >/etc/passwd
$ mkgroup -l -c >/etc/group
告诉Cygwin仅使用这两个文件
$ echo 'passwd: files' >/etc/nsswitch.conf
$ echo 'group: files' >>/etc/nsswitch.conf
我杀死了所有Cygwin程序,然后重新开始。现在一切都运行良好且快速。我将在每次Cygwin DLL文件更新时删除此hack,然后查看如何进行。
这只是一个草图-您至少要保留备份!
不推荐使用。请参阅我对此问题的最新解答,以获得更好的(IMHO)解决方案。
阅读下面的更新,原来不是问题。
尽管此问题是断断续续的,但我一直在忍受这个问题的极端版本。当问题存在时,所有命令将花费20秒,最极端的情况是几分钟。它会发生几天,然后消失几天。顺便说一句,我有一个非常快的系统,其中包含许多DRAM,SSD驱动器等。
我现在终于有了一个可以解释问题的候选理论。我只是通过setup-x86_64.exe(我很少这样做)更新了Cygwin,此后事情又变得非常灵敏(字面上比以前快1000倍)。我猜想更新结束时的rebaseall是造成差异的原因。
更新:我之前看到的提速显然是巧合;当问题在一个月后再次出现时,这并没有解决。事实证明,禁用Windows Defender实时保护可立即解决该问题。
这就是这个问题对我的体现。在Cygwin上输入的第一个命令(例如20)提示它很快,但是随后突然变得非常缓慢。
我尝试了上述身份验证修复程序。它对我不起作用。
Cygwin FAQ报告说Cygwin不喜欢用户名或组名中的空格。请参阅“ 我的Windows登录名”中是否有空格,这会引起问题吗?。
我的群组名称中有一个空格,因此我/etc/group
在身份验证修复程序生成的文件中将其更改为下划线。那也不起作用。
针对相同问题的其他发布也报告了它是由病毒扫描程序导致的。我用Sophos替换了现有的病毒扫描程序(System Center Endpoint Protection)。那为我解决了问题。
我希望这有帮助。
我在cygwin上有一段时间构建缓慢执行的问题。
我昨天被迫进行更新,并遇到了rebaseall根本无法执行的问题。这迫使我不得不去研究其他事情,并且发现了一份报告,据称Trusteer Rapport /端点保护会导致rebaseall问题和响应时间变慢。因此,我通过“控制面板”中的常规Windows卸载程序方法将其删除。
然后,我从以admin身份运行的破折号界面进行了rebaseall操作。
因此,这意味着在开始菜单中输入破折号(win7)。破折号快捷方式将出现,右键单击以管理员身份运行。然后在启动时执行:
/ usr / bin / rebaseall -v
去喝咖啡...它会坐几秒钟,然后才能显示输出,如果它坐了5分钟以上却什么也不做,那么您还有另一个问题。
这修复了rebaseall,但也大大提高了我的构建速度。值得检查是否已安装,请尝试将其删除。
c:\msys64\user\bin\dash.exe
。为了以管理员身份运行它,我必须在桌面上为其创建一个快捷方式。不幸的是,这不能解决我的慢cygwin:(
C:\cygwin\bin>.\ls.exe <ENTER>