chiark / gitweb /
Add sysv init scripts and splitoff pam module
[elogind.git] / debian / elogind.init
1 #! /bin/sh
2
3 ### BEGIN INIT INFO
4 # Provides:     logind
5 # Required-Start:       $dbus $remote_fs $syslog
6 # Required-Stop:        $dbus $remote_fs $syslog
7 # Default-Start:        2 3 4 5
8 # Default-Stop:         
9 # Short-Description:    elogind session management daemon
10 ### END INIT INFO
11
12 set -e
13
14 # /etc/init.d/elogind: start and stop the elogind session management daemon
15
16 ELOGIND=/lib/elogind/elogind
17
18 test -x $ELOGIND || exit 0
19
20 umask 022
21
22 . /lib/lsb/init-functions
23
24 ELOGIND_OPTS="-D"
25
26 # Are we running from init?
27 run_by_init() {
28     ([ "$previous" ] && [ "$runlevel" ]) || [ "$runlevel" = S ]
29 }
30
31 check_for_upstart() {
32   if init_is_upstart; then
33           exit $1
34   fi
35 }
36
37 export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
38
39 case "$1" in
40   start)
41         check_for_upstart 1
42         log_daemon_msg "Starting session management daemon" "elogind" || true
43         if start-stop-daemon --start --quiet --oknodo --pidfile /run/elogin.pid --exec $ELOGIND -- $ELOGIND_OPTS; then
44             log_end_msg 0 || true
45         else
46             log_end_msg 1 || true
47         fi
48         ;;
49   stop)
50         check_for_upstart 0
51         log_daemon_msg "Stopping session management daemon" "elogind" || true
52         if start-stop-daemon --stop --quiet --oknodo --pidfile /run/elogind.pid; then
53             log_end_msg 0 || true
54         else
55             log_end_msg 1 || true
56         fi
57         ;;
58   reload|force-reload|restart)
59         check_for_upstart 1
60         log_daemon_msg "Restarting session management daemon" "elogind" || true
61         start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile /run/elogind.pid
62         if start-stop-daemon --start --quiet --oknodo --pidfile /run/elogind.pid --exec $ELOGIND -- $ELOGIND_OPTS; then
63             log_end_msg 0 || true
64         else
65             log_end_msg 1 || true
66         fi
67         ;;
68   try-restart)
69         check_for_upstart 1
70         log_daemon_msg "Restarting session management daemon" "elogind" || true
71         RET=0
72         start-stop-daemon --stop --quiet --retry 30 --pidfile /run/elogind.pid || RET="$?"
73         case $RET in
74             0)
75                 # old daemon stopped
76                 if start-stop-daemon --start --quiet --oknodo --pidfile /run/elogind.pid --exec $ELOGIND -- $ELOGIND_OPTS; then
77                     log_end_msg 0 || true
78                 else
79                     log_end_msg 1 || true
80                 fi
81                 ;;
82             1)
83                 # daemon not running
84                 log_progress_msg "(not running)" || true
85                 log_end_msg 0 || true
86                 ;;
87             *)
88                 # failed to stop
89                 log_progress_msg "(failed to stop)" || true
90                 log_end_msg 1 || true
91                 ;;
92         esac
93         ;;
94   status)
95         check_for_upstart 1
96         status_of_proc -p /run/elogind.pid $ELOGIND elogind && exit 0 || exit $?
97         ;;
98   *)
99         log_action_msg "Usage: /etc/init.d/elogind {start|stop|reload|force-reload|restart|try-restart|status}" || true
100         exit 1
101 esac
102
103 exit 0