Здравствуйте, товарищи! Пишу вам из горящего трактора.
После неудачного отключения ноутбука из-за отключения питания, KDE упала на бок и дрыгает лапками. Раньше у меня такое тоже бывало, спасало удаление папок ~/.kde/~cache-*, ~/.kde/~tmp-* и ~/.kde/~socket-* и очистка /tmp, но теперь нет.
Итак, условия задачи
Debian Jessie, 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2+deb8u3 (2016-07-02) x86_64 GNU/Linux
KDE 4.14.2, Qt 4.8.6
Сразу после аварийного отключения система при загрузке сказала, что восстанавливает журналы /dev/sda1 и /dev/sda2, и что в целом файловая система не пострадала.
Ситуация
После входа пользователя в kde запускаются программы которые были запущены перед отключением, а именно: firefox, thunderbird, gimp, konsole, guake и ещё по мелочи.
Сразу после запуска всё вроде нормально, но через какое-то время становится понятно, что больше ни одно GUI-приложение не запускается. Они просто зависают и всё. Убить процесс получается с лёгкостью.
Если сразу же после входа в KDE запускать GUI-приложения, они запускаются, но по прошествии небольшого времени - перестают.
Проведённые исследования:
Если запустить приложение из консоли, никакого вывода не следует, оно просто зависает и всё.
Если запустить приложение через strace, то практически всегда последними строками перед зависанием выдаются такие:
socket(PF_LOCAL, SOCK_STREAM, 0) = 9
getsockopt(9, SOL_SOCKET, SO_SNDBUF, [212992], [4]) = 0
uname({sys="Linux", node="MihanLenovo", ...}) = 0
connect(9, {sa_family=AF_LOCAL, sun_path=@"/tmp/.ICE-unix/638"}, 21) = 0
fcntl(9, F_SETFD, FD_CLOEXEC) = 0
write(9, "\0\1\0\0\0\0\0\0", 8) = 8
read(9,
netstat -nlp | grep /tmp/.ICE-unix выдал:
unix 2 [ ACC ] STREAM LISTENING 87122 638/kdeinit4: ksmse @/tmp/.ICE-unix/638
unix 2 [ ACC ] STREAM LISTENING 87123 638/kdeinit4: ksmse /tmp/.ICE-unix/638
mihanen+ 638 0.0 0.4 565208 38496 ? Sl 09:31 0:00 kdeinit4: ksmserver [kdeinit]
Важный момент: Логин от имени другого пользователя не работает совсем. То есть, я создаю пользователя testuser, у которого, понятное дело, пустая домашняя папка, и при попытке залогиниться этим пользователем в KDE получаю следующее:
Сначала появляется панелька загрузки, на которой обычно при входе в КДЕ последовательно отображаются иконки жёсткого диска, системы, интернета (всего вроде 5 штуки), символизируя тем самым загрузку различных подсистем. Но в данном случае никаких иконок на панельке не появляется, и она просто какое-то время висит, потом исчезает, на экране остаётся фон, который был при загрузке, курсор мышки и всё. Процесс на этом прекращается. Если переключиться в терминал, и набрать htop, iotop, то видно что никаких особых процессов не происходит, всё тихо и спокойно.
Что я пробовал для устранения проблемы:
1. Попробовал зайти от имени абсолютно девственно чистого пользователя - результат описан выше.
2. Попробовал удалить временные папки /tmp/*, ~/.kde/~tmp-*, ~/.kde/~cache-*, ~/.kde/~socket-* - никакого результата
3. Посмотрел файл ~/.xsession-errors, там вот что: http://pastebin.ru/OkNPIUq8 (там были и ещё строчки но все такого же типа, никаких сообщений от самого ksmserver'а)
4. Посмотрел /var/log/Xorg.0.log - там никаких ошибок вообще, если нужно могу и его приложить.
5. Перечитал кучу форумов на эту тему, никаких решений не нашел. Нашёл похожую проблему - у человека зависал ksmserver и после этого приложения также не могли подключиться к нему через /tmp/.ICE-unix/123. Однако, в том случае причиной был pidgin, который после запуска ломал ksmserver. Я допускаю, что в моём случае это тоже какая-то программа так делает, но не знаю какая, и главное, не знаю как это стыкуется с другими составляющими проблемы.
6. Попытался найти подробное описание ksmserver, чтобы понять где он может хранить логи, или как включить у него такую способность. Потрепел неудачу. Правда нашёл официальные исходники, и так как знаю С++, на крайний случай отложил вариант «посмотреть исходные коды ksmserver'а»
Итого:
Сейчас я могу худо-бедно пользоваться компьютером, так как при входе в систему запускается почтовый клиент, firefox, и netbeans, так что работать я могу. Также, работает всё что нужно в консоли. Если нужна какая-то программа, я выхожу из kde путём kdm restart, захожу заново, и когда вход произойдёт, быстро-быстро запускаю нужную программу. Иногда мне везёт и она успешно запускается до того как ksmserver встаёт колом.
Тем не менее, данная ситуация меня не устраивает.
Поскольку я вижу, что простой пользователь вообще не может зайти в KDE:
1) я хотел бы понять, где можно посмотреть логи именно ksmserver'а, или как его заставить писать эти логи.
2) я был бы рад узнать, какие пакеты можно было бы переустановить чтобы вероятно восстановить работоспособность системы. И главное, как их переустановить с удалением настроек (purge), чтобы при этом не слетела вся система (при удалении ksmserver'а естественно предлагается снести вообще всё GUI)
3) интересно было бы узнать, где хранится список приложений, которые ksmserver запускает сразу после старта системы, тогда я мог бы просто добавить в этот список дополнительные приложения, и жить чуть полегче.
4) также, я вероятно упустил что-то из виду, так что буду благдарен пинку в том направлении где может быть решение проблемы.
Спасибо за уделённое внимание!