Как отследить сбой консоли входа?

Вам придется посмотреть исходный код, чтобы узнать, почему программа зависает. Он также может прерываться или давать сбой или игнорировать проблему :

.
bash -c 'exec >&-; echo foo; echo bar >&2'
    bash: line 0: echo: write error: Bad file descriptor
    bar

Этот шелл-код игнорирует проблему.

bash -c 'set -e; exec >&-; echo foo; echo bar >&2'
    bash: line 0: echo: write error: Bad file descriptor

Этот шелл-код прерывается из-за ошибки.

Может произойти зависание, если есть какая-то функция ведения журнала с циклом «повторять до тех пор, пока он не будет успешно зарегистрирован». Этого никогда не происходит, потому что запись в файловый дескриптор 1 завершается ошибкой, поэтому программа попадает в бесконечный цикл.

0
28.03.2020, 05:39
1 ответ

Вы можете добавить set -xв начало /etc/profile, чтобы оболочка отображала каждую команду, которую она собирается выполнить, со всеми расширениями переменных и т. д., уже развернутыми, так что вы увидите, что на самом деле делает оболочка..

Но если вы говорите о входе в систему с графическим интерфейсом, сначала убедитесь, что ваша файловая система не заполнена на 100% :создание сеанса графического интерфейса требует создания нескольких небольших файлов, и если файловая система полностью заполнена, это не удастся. Базовая команда -строка входа в систему (, например. через SSH или в текстовой консоли режима -)должно пройти успешно, даже если диск заполнен на 100%.

0
19.03.2021, 02:31

Теги

Похожие вопросы