我有一台带有intel i7的Windows 7计算机,其中包含2个内核和超线程以及云中的Linux虚拟机。我不喜欢VNC(它是滞后的)所以我使用X窗口。
我使用以下命令启动我的Cygwin XWin:
C:\cygwin64\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; /usr/bin/xinit /etc/X11/xinit/startxwinrc -- /usr/bin/XWin :0 -multiwindow -listen tcp"
它正常工作,但由于某种原因,它产生了两个xwin-xdg菜单进程,另一个正在消耗我的CPU的25%。当我杀了它时,CPU使用率恢复正常,一切正常,包括其他xwin-xdg-menu进程。
我也尝试了这个:
C:\cygwin64\bin\XWin.exe :0 -multiwindow -listen tcp
但它会使应用程序运行缓慢且分辨率不佳。
有没有办法用listen-tcp启动X,并且我的多个屏幕具有适应的分辨率,而且不必每次都手动杀死额外的进程?
似乎我不是唯一一个有这个问题的人,但是现在我还没有找到任何解决方案。 https://cygwin.com/ml/cygwin/2017-05/msg00345.html https://superuser.com/questions/1210325/cygwin-at-spi-bus-launcher-and-xwin-xdg-menu-high-cpu(我对at-spi-bus-launcher没有问题)
答案 0 :(得分:0)
<强>解决方案:强>
创建〜/ .startxwinrc 文件,并添加一行:
exec sleep infinity
通过运行chmod +x ~/.startxwinrc
使〜/ .startxwinrc可执行。
我怀疑这有效的原因:
startxwin搜索要在启动时执行的〜/ .startxwinrc文件。如果startxwin没有找到〜/ .startxwinrc文件,startxwin将遵循/etc/X11/xinit/startxwinrc
中列出的默认例程。
默认例程启动/ usr / bin / xwin-xdg-menu,不知何故导致我有两个xwin-xdg-menu进程,其中一个进程具有非常高的cpu。创建〜/ .startxwinrc会绕过默认例程,禁止/ usr / bin / xwin-xdg-menu完全启动。
启动后,exec sleep infinity使x服务器保持活动状态。