| #!/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 |
| |
| #default for USER |
| . /etc/default/xserver-nodm |
| echo "Starting Xserver" |
| if [ "$USER" != "root" ]; then |
| # 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 |
| # Make sure that the Xorg has the cap_sys_admin capability which is |
| # needed for setting the drm master |
| if ! grep -q "^auth.*pam_cap\.so" /etc/pam.d/su; then |
| echo "auth optional pam_cap.so" >>/etc/pam.d/su |
| fi |
| if ! /usr/sbin/getcap $XSERVER | grep -q cap_sys_admin; then |
| /usr/sbin/setcap cap_sys_admin+eip $XSERVER |
| fi |
| fi |
| |
| # Using su rather than sudo as latest 1.8.1 cause failure [YOCTO #1211] |
| su -l -c '/etc/xserver-nodm/Xserver &' $USER |
| # 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 |