Try modifying your /etc/init/lightdm.conf to the following (adding the sleep 2 line):
# LightDM - light Display Manager
#
# The display manager service manages the X servers running on the
# system, providing login and auto-login services
#
# based on gdm upstart script
start on ((filesystem
and runlevel [!06]
and started dbus
and (drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
or stopped udev-fallback-graphics))
or runlevel PREVLEVEL=S)
script
if [ -n "$UPSTART_EVENTS" ]
then
# Check kernel command-line for inhibitors, unless we are being called
# manually
for ARG in $(cat /proc/cmdline); do
if [ "$ARG" = "text" ]; then
plymouth quit || :
stop
exit 0
fi
done
Try modifying your /etc/init/ lightdm. conf to the following (adding the sleep 2 line):
# LightDM - light Display Manager
#
# The display manager service manages the X servers running on the
# system, providing login and auto-login services
#
# based on gdm upstart script
description "LightDM Display Manager"
author "Robert Ancell "
start on ((filesystem DEVICE_ FOR_DISPLAY= 1 graphics) )
and runlevel [!06]
and started dbus
and (drm-device-added card0 PRIMARY_
or stopped udev-fallback-
or runlevel PREVLEVEL=S)
stop on runlevel [016]
emits login-session-start session- start
emits desktop-
emits desktop-shutdown
script
if [ -n "$UPSTART_EVENTS" ]
then
# Check kernel command-line for inhibitors, unless we are being called
# manually
for ARG in $(cat /proc/cmdline); do
if [ "$ARG" = "text" ]; then
plymouth quit || :
stop
exit 0
fi
done
[ ! -f /etc/X11/ default- display- manager -o "$(cat /etc/X11/ default- display- manager 2>/dev/null)" = "/usr/bin/lightdm" -o "$(cat /etc/X11/ default- display- manager 2>/dev/null)" = "/usr/sbin/lightdm" ] || { stop; exit 0; }
if [ "$RUNLEVEL" = S -o "$RUNLEVEL" = 1 ]
then
# Single-user mode
plymouth quit || :
exit 0
fi
fi
sleep 2
exec lightdm
end script
post-stop script STOP_EVENTS" = runlevel ]; then
if [ "$UPSTART_
initctl emit desktop-shutdown
fi
end script