Bash 在 Windows 10 中的 Linux 子系统中挂起

Bash 在 Windows 10 中的 Linux 子系统中挂起

在Windows 10中,我使用的是Linux子系统。我首先以管理员身份打开一个cmd终端,然后bash在cmd终端中启动,然后使用bash shell。

有时我的 bash 在终端运行时会挂起。

例如,在 Windows 中用某个软件打开一个文件时,我尝试在mv fileParentDir fileParentDirnewbash 中重命名该文件的父目录,然后 bash 就会挂起。如果我强制关闭 bash 终端,然后重新打开一个新的 cmd 终端重新启动bash,命令bash也会挂起。可以通过重新启动 Windows 来解决此问题。

有没有解决挂起问题的方法,而不是重新启动 Windows?

我谷歌了一下,有人说多个分区文件可能是原因。但我只使用一个分区和分区文件。

谢谢。

答案1

注意: 此错误的修复程序现已公开发布。如果您仍遇到此问题,请确保 Windows 10 是最新版本。


这是一个已知问题,显然,您必须重新启动计算机才能恢复:
问题 671 - mv 空子文件夹导致死锁 - BashOnWindows GitHub

该问题已于 8 月份在 Windows Insider Preview Build 14901 中修复。

Windows 上的 Ubuntu 上的 Bash - 发行说明(内部版本 14901)

Windows 10 周年更新发布后的第一个 Insider 版本。

有关版本 14901 的一般 Windows 信息,请访问 Windows 博客。要跟踪或报告问题,请访问我们的 Github 页面。

$ mv a/c/ a/b/修复了尾部斜杠问题,现在可以执行以下等命令

解决方案:

  1. 安装任何 Windows Insider Preview Build 14901 或更高版本
  2. 等待周年更新发布
  3. 避免使用以斜杠结尾的命令行参数。

答案2

我也遇到了这个问题。我的 PC 已加入域,我认为这是问题的一部分。

运行命令时,按下“Enter”后,shell 会挂起,它会告诉我(有时)找不到我的“主机名”。我注意到每次使用 sudo 或我期望 DNS 发挥作用时都会发生这种情况。

我运行了以下命令:

# hostname --short
host    

hostname --domain
[error message]

因此我决定检查主机名文件并确保我的 FQDN 已设置(但实际上并未设置)

/etc/hostname

一旦我将其设置为 host.domain.com,我就会运行以下命令:

sudo hostname -F /etc/hostname

运行命令后我不再遇到任何挂起的情况,也不再抱怨找不到主机名。我不确定您是否在域中,但如果在,可能值得检查一下。

注意:出于某种原因,每次打开 bash 时我都必须这样做。这真的很令人沮丧...

另一点说明:我发现最好以管理员身份运行 bash。如果不这样做,你甚至无法使用 ping。

相关内容