Вопрос или проблема
Я работаю на Ubuntu 18.10, но не могу найти файлы Xsession в домашнем каталоге:
$ ls -al ~ | grep -i session
# ничего не вернуло.
Тем не менее, конфигурация указывает на то, что они должны быть там.
$ grep -i 'xsession' /etc/X11/Xsession
# /etc/X11/Xsession
# глобальный файл Xsession -- используется дисплей-менеджерами и xinit (startx)
# $Id: Xsession 967 2005-12-27 07:20:55Z dnusinow $
PROGNAME=Xsession
OPTIONFILE=/etc/X11/Xsession.options
SYSSESSIONDIR=/etc/X11/Xsession.d
USERXSESSION=$HOME/.xsession
USERXSESSIONRC=$HOME/.xsessionrc
ALTUSERXSESSION=$HOME/.Xsession
ERRFILE=$HOME/.xsession-errors
if ! ln -sf "$ERRFILE" "${TMPDIR:=/tmp}/xsession-$USER"; then
message "предупреждение: невозможно создать символическую ссылку на \"$TMPDIR/xsession-$USER\" на" \
"\"$TMPDIR/xsession-$USER\"."
В чем проблема?
Некоторые проверки не прошли на этой строке:
if (umask 077 && touch "$ERRFILE") 2> /dev/null && [ -w "$ERRFILE" ] &&
[ ! -L "$ERRFILE" ]
И теперь ваш .xsession-errors вместо этого находится в /tmp/file….. где точки представляют собой случайное имя.
Посмотрите https://askubuntu.com/a/1156247/20275 для получения дополнительной информации.
Ответ или решение
Файл .xsession-errors
играет важную роль в операционной системе Ubuntu, так как в нем сохраняются сообщения об ошибках и информация о запуске пользовательских сессий X. В контексте вашей ситуации, вы не нашли этот файл в вашем домашнем каталоге, несмотря на то что конфигурация предполагает его наличие.
Местоположение файла .xsession-errors
Файл .xsession-errors
обычно располагается в вашем домашнем каталоге ($HOME
), то есть /home/имя_пользователя/.xsession-errors
. Для его просмотра вы можете использовать следующие команды в терминале:
ls -al ~ | grep .xsession-errors
Если результатом является отсутствие файла, это может быть связано с несколькими причинами.
Причины отсутствия файла .xsession-errors
-
Проблемы с правами доступа: В вашем случае, согласно приведенной конфигурации, система пытается создать файл
.xsession-errors
, но если ваши права не позволяют это сделать, файл не будет создан. Проверьте права доступа к вашему домашнему каталогу:ls -ld ~
Убедитесь, что для вас (пользователя) есть права на запись.
-
Ошибки при запуске X-сессии: Если сессия X не может правильно создать файл, например, в результате нарушения в сценариях запуска, он может быть создан в другом месте, например,
/tmp/
. Вы упомянули, что у вас имеется файл в/tmp/file...
, где точки представляют случайное имя. Это означает, что система не смогла создать файл в вашем домашнем каталоге, и сработал обходной путь для создания временного файла. -
Ошибки в конфигурации сессии: Команда, которая отвечает за создание и проверку файла, выглядит следующим образом:
if (umask 077 && touch "$ERRFILE") 2>/dev/null && [ -w "$ERRFILE" ] && [ ! -L "$ERRFILE" ]
Здесь проверяется умаска, делается попытка создания файла, и затем проверяется, что файл доступен для записи и не является символьной ссылкой. Ошибки в любом из этих шагов могут вызвать создание файла в
/tmp/
.
Рекомендации по решению проблемы
-
Проверьте права доступа: Убедитесь, что у вашего пользователя есть права на запись в домашний каталог. Возможно, нужно изменить их следующей командой:
chmod u+rwx ~
-
Запустите X-сессию вручную: Попробуйте запустить сессию X вручную с помощью
startx
, чтобы проверить, возникает ли ошибка. -
Проверьте логи: Посмотрите системные логи для получения информации об ошибках, связанных с X-сессией. Вы можете использовать команду:
cat /var/log/Xorg.0.log | grep EE
Это даст вам информацию о том, есть ли проблемы с видеодрайверами или другими компонентами.
Заключение
Файл .xsession-errors
критически важен для диагностики и отладки пользовательских сессий в Ubuntu. Если вы не можете его найти, необходимо проверить права доступа и возможные ошибки при запуске X-сессионных скриптов. Проанализируйте системные журналы и права, чтобы устранить возможные блокировки, и верните файл в ваше домашнее пространство.