Когда GNOME доставляет вам проблемы и вы хотите найти неисправность или сообщить о ней разработчикам, вы должны найти файлы журнала. Кроме того, вы можете создать дополнительные файлы журналов. Это требует добавления патчей, поэтому требует большего опыта, чем у обычного пользователя. Если у вас возникли проблемы с запуском GNOME, вам нужно будет проверить, что происходит с вашим диспетчером отображения. В обычной системе все начинается с GDM. У этого есть свои собственные файлы журнала. Самое неприятное, что может произойти, – это зависание Shell. Ваш компьютер не отвечает. Что делать, если оболочка перестает отвечать?
Существует графическое приложение для просмотра журналов GNOME. Вы можете использовать приложение ‘GNOME Logs’, чтобы получить обзор.
В Linux доминирующей системой инициализации является systemd. Эта система также поддерживает работу ваших демонов и служб во время обычной работы. GNOME не исключение, любые проблемы можно отследить с помощью journalctl.
Поддерживая работу системы, systemd также регистрирует все происходящие события. Сюда входят основные события и ошибки. Журналы сохраняются в общем файле, который вы можете прочитать с помощью journalctl. Использование кажется неуклюжим для начала, но на самом деле оно будет гладким, если вы знаете некоторые регулярные выражения. Также есть способы отфильтровывать информацию.
Самый прямой способ узнать, что происходит, и покопаться в журналах – это сделать это для своей личности. Вам нужно использовать числовой идентификатор, который обычно равен 1000, но проверьте его с помощью команды id.
$ id –user
Результат – ваш идентификатор пользователя. Подключите его к своей проверке журналов.
$ journalctl _UID=1000
Появятся все журналы от вашего пользователя, нет необходимости направлять их в «less», он ведет себя так же. Для тех, кто еще не фанат. В less вы можете искать строки с помощью функций и фильтров, подобных grep.
В более ранних версиях GNOME использовался стандартный файл ошибок. В последнее время GNOME изменил место ведения журналов, многие сайты сообщают об использовании ~/.xsession-errors, поскольку в нескольких версиях он больше не использует этот файл.
Осторожно, GNOME не записывает в этот файл. Если в этом файле есть текст, значит, вы запустили другой оконный менеджер! Вы можете найти данные о вашем текущем сеансе в var/log/syslog, там много подробностей.
Отфильтруйте с помощью grep или «less», чтобы определить, что не дает вашей системе.
У вас может заблокироваться рабочий стол. В этом случае проверьте, есть ли у вас реакция клавиатуры. Если вы это сделаете, нажмите ctrl-alt- <Fn>, где Fn обычно F3, чтобы открыть виртуальный терминал (vt) 3. Причина в том, что GDM использует F1 для vt 1, а ваш сеанс использует vt 2, оставляя vt 3-6 для вы можете делать свои собственные команды. Затем вы можете использовать этот терминал для устранения неполадок или даже открыть сеанс x.
Если вы разрабатываете или общаетесь с разработчиком для устранения серьезной проблемы с оболочкой, вам нужны более подробные журналы. Чтобы проверить наличие серьезных зависаний, вам нужно перекомпилировать gjs и js52, а затем искать дамп ядра.
Процедура патча и компиляции проще, чем вы думаете, она описана в ссылке. Пакет для проверки наличия дампов ядра недоступен в ванильных системах. Вам необходимо установить пакет самостоятельно.
$ sudo apt install systemd-coredump
После его установки вы можете составить список дампов ядра с помощью нового инструмента.
$ coredumpctl -l
Когда вы это сделаете, отправьте дампы на страницу проекта https://gitlab.gnome.org/GNOME/gnome-shell/issues Сохраняйте отладочный пакет в вашей системе только во время отладки. Он понадобится вам только для устранения неполадок!
Первое, что нужно сделать, если у вас возникли проблемы с приложением, – это запустить его из командной строки. Вы можете запустить вывод на терминал или отправить его в файл для дальнейшей обработки. Использование регулярных выражений также очень полезно для этой работы.
Если у вас есть специальное приложение, которое создает проблемы, вы также можете выполнить фильтрацию внутри systemd. Для этого вы должны найти PID, который вы используете, а затем выбрать этот PID из journalctl.
$ ps aux|grep chrome
Используйте результат как PID в следующей команде.
$ journalctl _PID
Здесь будут появляться любые проблемы с взаимодействием с GNOME. Это не показывает, что происходит внутри приложения. Чтобы отправить в отдельный файл, используйте команду ниже.
$ chrome 2> Chrome-Error.log
Опять же, здесь вы можете и должны передать его через такие инструменты, как grep, sed и другие, чтобы получить наиболее актуальную информацию в вашем журнале.
В большинстве случаев устранение неполадок в GNOME следует выполнять с помощью команды journalctl. Только если у вас серьезные проблемы, вам нужно что-то еще. Прежде чем начать сообщать о проблемах, найдите также обычные файлы системного журнала. Они содержат большую часть информации. У вас есть возможность использовать программное обеспечение для графических презентаций для проверки файлов. Если у вас есть длинные журналы, убедитесь, что вы знаете, как обрабатывать файлы с помощью регулярных выражений. Если у вас серьезные проблемы или вы ищете новый оконный менеджер, используйте другой виртуальный терминал для изучения.