59 lines
1.2 KiB
Bash
Executable File
59 lines
1.2 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
### BEGIN INIT INFO
|
|
# Provides: xserver
|
|
# Required-Start: $local_fs $remote_fs dbus
|
|
# Required-Stop: $local_fs $remote_fs
|
|
# Default-Start: 2 3 4 5
|
|
# Default-Stop: 0 1 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`
|
|
fi
|
|
# Using sudo -i here has the nice side effect of making sire
|
|
# HOME, USER and other previously problematic variables
|
|
# are set correctly
|
|
sudo -b -i -u $username /etc/X11/Xserver
|
|
# Wait for the desktop to say its finished loading
|
|
dbus-wait org.matchbox_project.desktop Loaded
|
|
;;
|
|
|
|
stop)
|
|
echo "Stopping XServer"
|
|
killproc xinit
|
|
;;
|
|
|
|
restart)
|
|
$0 stop
|
|
sleep 1
|
|
$0 start
|
|
;;
|
|
|
|
*)
|
|
echo "usage: $0 { start | stop | restart }"
|
|
;;
|
|
esac
|
|
|
|
exit 0
|