Import package work effort from Nikolas Poniros <edhunter@sidux.com>.
[debian/lxdm.git] / debian / lxdm.init
1 #!/bin/sh
2
3 # Largely adapted from xdm's init script:
4 # Copyright 1998-2002, 2004, 2005 Branden Robinson <branden@debian.org>.
5 # Copyright 2006 Eugene Konev <ejka@imfi.kspu.ru>
6 #
7 # This is free software; you may redistribute it and/or modify
8 # it under the terms of the GNU General Public License as
9 # published by the Free Software Foundation; either version 2,
10 # or (at your option) any later version.
11 #
12 # This is distributed in the hope that it will be useful, but
13 # WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 # GNU General Public License for more details.
16 #
17 # You should have received a copy of the GNU General Public License with
18 # the Debian operating system, in /usr/share/common-licenses/GPL;  if
19 # not, write to the Free Software Foundation, Inc., 51 Franklin Street, 
20 # Fifth Floor, Boston, MA 02110-1301, USA.
21
22 ### BEGIN INIT INFO
23 # Provides:          lxdm
24 # Required-Start:    $local_fs $remote_fs
25 # Required-Stop:     $local_fs $remote_fs
26 # Should-Start:      $named acpid hal
27 # Should-Stop:       $named
28 # Default-Start:     2 3 4 5
29 # Default-Stop:      0 1 6
30 # Short-Description: Start lxdm
31 ### END INIT INFO
32
33 set -e
34
35 HEED_DEFAULT_DISPLAY_MANAGER=
36 # To start lxdm even if it is not the default display manager, change
37 # HEED_DEFAULT_DISPLAY_MANAGER to "false."
38 # Also overridable from command line like:
39 # HEED_DEFAULT_DISPLAY_MANAGER=false /etc/init.d/lxdm start
40 [ -z "$HEED_DEFAULT_DISPLAY_MANAGER" ] && HEED_DEFAULT_DISPLAY_MANAGER=true
41
42 DEFAULT_DISPLAY_MANAGER_FILE=/etc/X11/default-display-manager
43
44 PATH=/bin:/usr/bin:/sbin:/usr/sbin
45 DAEMON=/usr/bin/lxdm
46 PIDFILE=/var/run/lxdm.pid
47
48 test -x $DAEMON || exit 0
49
50 . /lib/lsb/init-functions
51
52 SSD_START_ARGS="--pidfile $PIDFILE --name $(basename $DAEMON) --startas $DAEMON -- -d"
53 SSD_STOP_ARGS="--pidfile $PIDFILE --name $(basename $DAEMON) --retry TERM/5/TERM/5"
54
55 case "$1" in
56   start)
57     if [ "$HEED_DEFAULT_DISPLAY_MANAGER" = "true" ] &&
58        [ -e $DEFAULT_DISPLAY_MANAGER_FILE ] &&
59        [ "$(cat $DEFAULT_DISPLAY_MANAGER_FILE)" != "${DAEMON}" ]; then
60       echo "Not starting X display manager (lxdm); it is not the default" \
61         "display manager."
62     else
63       log_daemon_msg "Starting X display manager" "lxdm"
64       start-stop-daemon --start --quiet $SSD_START_ARGS \
65         || log_progress_msg "already running"
66       log_end_msg 0
67     fi
68   ;;
69
70   restart)
71     [ -f $PIDFILE ] && /etc/init.d/lxdm stop
72     [ -f $PIDFILE ] && exit 1
73     /etc/init.d/lxdm start
74   ;;
75
76   stop)
77     log_daemon_msg "Stopping X display manager" "lxdm"
78     if ! [ -f $PIDFILE ]; then
79       log_progress_msg "not running ($PIDFILE not found)"
80     else
81       start-stop-daemon --stop --quiet $SSD_STOP_ARGS
82       SSD_RES=$?
83       if [ $SSD_RES -eq 1 ]; then
84         log_progress_msg "not running"
85       fi
86       if [ $SSD_RES -eq 2 ]; then
87         log_progress_msg "not responding to TERM signals"
88       else
89         if [ -f $PIDFILE ]; then
90           log_progress_msg "(removing stale $PIDFILE)"
91           rm $PIDFILE
92         fi
93       fi
94     fi
95     log_end_msg 0
96   ;;
97   force-reload)
98     /etc/init.d/lxdm restart
99   ;;
100
101   *)
102     echo "Usage: /etc/init.d/lxdm {start|stop|restart|force-reload}"
103     exit 1
104     ;;
105 esac
106
107 exit 0