更新(问题已解决):

更新(问题已解决):

我遇到了一个问题,即 SSH 登录后我的 Ubuntu bash 冻结除非我立即按 Ctrl+C。似乎后台正在加载某些内容。这个问题在我收到大量 bash 消息后开始出现,例如:

watchpack error (watcher): error: enospc: system limit for number of file watchers reached, watch ....

当我尝试使用 IntelliJ 远程开发启动 Angular 应用程序时触发了这些错误。如何解决此问题并防止 SSH 登录后 bash 冻结?

更新(问题已解决):

ng completion在我的案例中,我遇到了终端冻结问题的根本原因。问题与用于 Angular 应用程序的命令有关。令人惊讶的是,这个命令被自动附加到我的~/.bashrc文件中,导致了冻结行为。以下是导致问题的具体行:

# Load Angular CLI autocompletion.
source <(ng completion script)

为了解决这个问题,我只需从文件中删除有问题的行即可~/.bashrc

我不确定这行代码是如何出现在我的~/.bashrc文件中的,但我怀疑这可能与我使用 IntelliJ Remote Development 有关。不过,这只是猜测,需要进一步调查。

如果您遇到类似的问题,我建议按照以下步骤恢复终端功能:

  1. 输入 SSH 凭据后,立即多次按 Ctrl+C。这将阻止执行文件中有问题的行~/.bashrc,并允许终端在我的情况下可用。
  2. 一旦终端可以访问,请检查~/.bashrc文件中是否有任何意外或有问题的行,尤其是最近添加的行。就我而言,涉及的行ng completion就是罪魁祸首。
  3. 删除或注释掉~/.bashrc文件中可能导致冻结问题的任何可疑行。
  4. 保存更改~/.bashrc并重新启动终端或再次输入文件以应用修改。

或者,您也可以暂时重命名整个文件以检查是否是这个原因造成的:使用cd ~然后mv .bashrc newfilename

通过遵循这些步骤,我能够(1.)再次使用我的终端和(2.)解决冻结问题并恢复终端的正常功能。

对未来吸取的教训是:拥有可用于 SSH 登录的第二个用户帐户总是好的。

相关内容