%3A.png)
Я столкнулся с проблемой, из-за которой мой Ubuntu bash зависает после входа по SSH.если я не нажму Ctrl+C немедленно. Кажется, что-то загружается в фоновом режиме. Эта проблема начала возникать после того, как я получил множество сообщений bash, например:
watchpack error (watcher): error: enospc: system limit for number of file watchers reached, watch ....
которые были вызваны, когда я пытался запустить приложение Angular с помощью IntelliJ Remote Development. Как я могу решить эту проблему и предотвратить зависание моего bash после входа по SSH?
ОБНОВЛЕНИЕ (проблема решена):
Я столкнулся с основной причиной проблемы зависания терминала в моем случае. Проблема была связана с командой, ng completion
используемой для моего приложения Angular. Удивительно, но эта команда была автоматически добавлена в мой ~/.bashrc
файл, что привело к зависанию. Вот конкретная строка, вызвавшая проблему:
# Load Angular CLI autocompletion.
source <(ng completion script)
Чтобы решить эту проблему, я просто удалил проблемную строку из ~/.bashrc
файла.
Я не уверен, как эта строка оказалась в моем ~/.bashrc
файле, но подозреваю, что это может быть связано с моим использованием IntelliJ Remote Development. Однако это всего лишь предположение, требующее дальнейшего расследования.
Если вы столкнулись с подобной проблемой, предлагаю выполнить следующие действия для восстановления работоспособности терминала:
- Сразу после ввода учетных данных SSH нажмите Ctrl+C несколько раз. Это предотвратит выполнение проблемной строки в моем
~/.bashrc
файле и позволит терминалу стать пригодным для использования в моем случае. - Как только терминал станет доступен, проверьте файл на наличие неожиданных или проблемных строк, особенно тех, которые были недавно добавлены. В моем случае виновником была
~/.bashrc
строка с участием .ng completion
- Удалите или закомментируйте все подозрительные строки в
~/.bashrc
файле, которые могут быть причиной зависания. - Сохраните изменения
~/.bashrc
и перезапустите терминал или снова откройте файл, чтобы применить изменения.
В качестве альтернативы вы также можете временно переименовать весь файл, чтобы проверить, является ли это причиной проблемы: используя cd ~
и затемmv .bashrc newfilename
Выполнив эти шаги, я смог (1) снова использовать свой терминал и (2) решить проблему зависания и восстановить нормальную функциональность моего терминала.
Извлеченный урок на будущее: всегда полезно иметь вторую учетную запись пользователя, которую можно использовать для входа по SSH.