123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- #!/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
|