Unable to start kde
Solution 1:
TL;DR there was a permission issue with ~/.cache/upstart/dbus-session
, rm -rf .cache/upstart
and a reboot solved it.
Newbie debug insights for future readers (which may well include me).
The ~/.xsession
message I mentioned in the question, along the lines of
init: dbus pre-start process (PID XXXX) terminated with status 2
was actually very important. I learnt what it meant while investigating, I found it this way
- First, I thought that the issue was with kde, so I tried to find how lightdm started kde
- I tried to look into
/etc/lightdm/
(as suggested byman lightdm
) but thelightdm
config files were not here but (I found it by looking into/var/log/lightdm.log
) in/usr/share/lightdm/lightdm.conf.d
where I found the relevant file/usr/share/lightdm/lightdm.conf.d/40-kde-plasma.conf
- According to it, what lightdm started for kde was the script
/usr/bin/startkde
, so I added some debugecho 'startkde is at line ##' > /home/evpok/delog
lines to it to see where it failed, but none of them were executed. - checking again
/var/log/lightdm.log
I saw the lineRunning command /usr/sbin/lightdm-session /usr/bin/startkde
so I looked intousr/sbin/lightdm-session
, to which I again added debuggingecho
lines - After some fumbling, I found that the issue was with loading an Xsession script:
/etc/X11/Xsession.d/99x11-common_start
. So I looked into that one. It seemed to load normally and had only one lineexec $STARTUP
. Adding anecho
to see what was in$STARTUP
I found it wasinit --user
. Now I didn't want to mess withinit
so I just traced its outputs by commenting this line out and adding insteadexec init -v --user > /home/evpok/initlog 2> /home/evpok/initerrlog
-
Looking into these logs, I saw this message in
initerrlog
dbus pre-start process (PID XXXX) terminated with status 2
but I still didn't know what to make of it, so I looked intoinitlog
and sawLoading configuration from /usr/share/upstart/sessions
- I looked into that dir, where I saw a
startkde.conf
. After some looking into documentation for upstart job confs, I saw that it hadstart on started dbus and xsession SESSION=kde-plasma
obviously that was whystartkde
didn't start. It needed dbus, which had an error, so I looked intodbus.conf
- There, there was a
pre-start script
stanza, hey! That's what's in the errlog of init and in.xsession-errors
. So for I added again some echoes, to find that the issue was at the lineecho "DBUS_SESSION_BUS_ADDRESS=${DBUS_SESSION_BUS_ADDRESS}" >$HOME/.cache/upstart/dbus-session
(Not one of my debug echoes) - After some fumbling, I found that I couldn't touch the non-existent file
~/.cache/upstart/debus-session
because of a permission issue. I tried creating it undersudo
and chown it to me with appropriate permissions but it didn't work. So I justrm -rf
'ed.cache/upstart
. - After a reboot, everything worked as expected.
After all I just needed to stop being afraid of the internals and getting my hands dirty.