Files
poky/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm
Ricardo Ribalda Delgado 1d0e217023 xserver-nodm: Support reboot from inside X
If reboot was called from inside the Xserver there could happen a race
condition where chvt would never end, and therefore the whole system was
stalled.

The user could not recover the system by ssh the machine or using the
keyboard.

Running chvt in background fixes the issue.

Also move sleep 1s inside stop to give time for killproc xinit for
fix issue when chvt 1 don't work because X server is still running.

(From OE-Core rev: 19eaf4a59f4545e049f525d0b0446a9c08d18f0f)

Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-05-30 22:26:14 +01:00

1.4 KiB
Executable File

#!/bin/sh

BEGIN INIT INFO

Provides: xserver

Required-Start: $local_fs $remote_fs dbus

Required-Stop: $local_fs $remote_fs

Default-Start: 5

Default-Stop: 0 1 2 3 6

END INIT INFO

killproc() { # kill the named process(es) pid=/bin/pidof $1 [ "$pid" != "" ] && kill $pid }

read CMDLINE < /proc/cmdline for x in $CMDLINE; do case $x in x11=false) echo "X Server disabled" exit 0; ;; esac done

case "$1" in start) . /etc/profile username=root echo "Starting Xserver" if [ -f /etc/X11/Xusername ]; then username=cat /etc/X11/Xusername # setting for rootless X chmod o+w /var/log chmod g+r /dev/tty[0-3] # hidraw device is probably needed if [ -e /dev/hidraw0 ]; then chmod o+rw /dev/hidraw* fi fi # Using su rather than sudo as latest 1.8.1 cause failure [YOCTO #1211] su -l -c '/etc/X11/Xserver&' $username # Wait for the desktop to say its finished loading # before loading the rest of the system # dbus-wait org.matchbox_project.desktop Loaded ;;

stop) echo "Stopping XServer" killproc xinit sleep 1 chvt 1 & ;;

restart) $0 stop $0 start ;;

*) echo "usage: $0 { start | stop | restart }" ;; esac

exit 0