Рейтинг:3

Экран входа в Kubuntu зависает при переключении пользователей

флаг af

У меня запущены два сеанса пользователей. Я могу переключаться между пользователями без ошибок большую часть времени. Но через некоторое время, после того как я попытаюсь переключить пользователей, на экране входа в систему для пользователя, на которого я переключаюсь, экран входа в систему застыл.

Курсор работает на зависшем экране входа в систему, но больше ничего не работает. Я не могу войти в систему, даже если я пытаюсь обойтись без пользовательского интерфейса, отражающего мой ввод.

Если я нажму ctrl+alt+F1, я смогу переключиться обратно и войти в систему под другим пользователем, но если я попытаюсь переключиться на зависшего пользователя, ничего не произойдет.

У меня видеокарта Radeon rx580...

Операционная система: Кубунту 20.04 Плазменная версия KDE: 5.18.5 Платформы KDE Версия: 5.68.0 Версия Qt: 5.12.8 Версия ядра: 5.11.0-27-универсальная

Есть ли, по крайней мере, обходной путь для перезапуска или уничтожения этого сеанса пользователя без перезапуска?

Henzo avatar
флаг pk
Я столкнулся с той же проблемой сегодня утром, возможно, это ошибка, попробуйте сообщить об этом с выводом журнала в службу поддержки kde.
Nate T avatar
флаг it
что говорят `dmesg`/`journalctl`? если нужно, покопайтесь в логах.
Nate T avatar
флаг it
Вы попали в TTY? Проверьте редактирование моего ответа.
Nate T avatar
флаг it
Сколько свободного места у вас есть? KDE сделает это, когда ваш жесткий диск будет почти заполнен. Если да, считайте это благословением. :)
Scorb avatar
флаг af
@NateT У меня 67 ГБ свободно из 227 ГБ.
sancho.s ReinstateMonicaCellio avatar
флаг pl
Была ли у вас возможность протестировать что-либо из предложенного?
Рейтинг:1
флаг pl

Варианты, чтобы попробовать, предполагая пользователь2 это пользователь, для которого сеанс должен быть перезапущен

  1. Из терминала (вы можете получить к нему доступ с помощью Ctrl+Альт+F4 к F6) залогинился пользователь2, DISPLAY=:<d> kwin --replace
  2. С терминала, вошедшего в пользователь2, killall -3 kwin && DISPLAY=:<d> kwin
  3. С терминала, вошедшего в пользователь2, kquitapp5 плазменная оболочка && kstart5 плазменная оболочка
  4. С терминала, вошедшего в пользователь2, killall -3 -u пользователь2 (более радикально)
  5. С терминала, вошедшего в пользователь1 (должен быть sudoer), sudo killall -3 -u user2 (тоже радикально)

Примечания:

  1. Чтобы найти номер дисплея <d> использовать команду кто.

  2. Дамп ядра мощь быть полезным (сравнить различные сигналы, https://stackoverflow.com/questions/4042201/how-does-sigint-relate-to-the-other-termination-signals-such-as-sigterm-sigquit и https://man7.org/linux/man-pages/man7/signal.7.html).

  3. Вы можете ожидать, что эта проблема будет решена сама по себе после следующего обновления ядра/kwin.

  4. Если ничего из вышеперечисленного не работает, возможно, подойдут небольшие вариации/комбинации.

  5. Пожалуйста, опубликуйте вывод

    $ эхо $XDG_SESSION_TYPE
    $ эхо $XDG_SESSION_ID
    $ кто
    $пс-efl | grep пользователь2
    
  6. Сравнивая вывод для случаев, когда пользователь2 не вошел в сессию kwin, когда он вошел в систему, и когда сессия зависла, также поучительна.

Рейтинг:1
флаг it

Есть ли, по крайней мере, способ перезапустить или убить этот пользовательский сеанс без перезапуска?

с TTY попробуйте запустить следующее:

Киллалл Квин
старткде

Мы надеемся, что это должно перезапустить ваш пользовательский сеанс.

Что касается фактического исправления, нам нужно будет просмотреть журналы, чтобы предоставить это. Большинство демонов запускаются для каждого сеанса, поэтому зависание сеанса может быть буквально чем угодно.

РЕДАКТИРОВАТЬ 1

Чтобы войти в TTY, просто нажмите Ctrl + Альт + F5 (например), чтобы перейти к TTY5. Замена F5 с F6 приведет вас к TTY6 и так далее.

Вам будет предложено ввести имя пользователя и пароль. После входа в систему вы сможете запускать команды как в моем ответе (выше), так и в ответе @SanchoS.ReinstateMonicaCellio. Надеюсь, они предоставят вам обходной путь.

Далее попробуйте запустить команду

dmesg --facility=демон

именно так, как здесь написано. Только dmesg будет работать, но это урежет вывод до того, что нам, вероятно, нужно. Если нет, мы можем вернуться назад и немного «расширить сеть».

Результат будет выглядеть как файл журнала. Решение вашей проблемы, вероятно, находится в этих журналах. Они упорядочены по дате/времени (перечислены для каждого журнала), поэтому должно быть относительно легко найти время последнего сбоя и изучить журналы за этот период времени.

Если вам нужны дополнительные пояснения, просто дайте нам знать. Мы рады объяснить.

Обязательно опубликуйте вывод журналов на свой вопрос (во время последнего инцидента).

Scorb avatar
флаг af
Что такое ТТИ? Где взять логи?
Nate T avatar
флаг it
Введите tty с [ctrl] + [alt] + [F3] или [F4] до [F9], я думаю. Это альтернативная среда командной строки, которая удобна для таких ситуаций, как ваша. журналы находятся в `/var/log`, но команды, перечисленные в моем первом комментарии, должны отображать те, которые вам нужны.
Nate T avatar
флаг it
@Scorb Это помогло тебе исправить это?
Рейтинг:0
флаг gh

3 вариант ответа https://askubuntu.com/a/1360848/1418851 работал на меня в очень похожем случае. Возможно, это комментарий, но я не могу этого сделать из-за репутации, это может быть полезно знать другим.

Ответить или комментировать

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