chiark / gitweb /
Add sysv init scripts and splitoff pam module
[elogind.git] / debian / elogind.init
diff --git a/debian/elogind.init b/debian/elogind.init
new file mode 100644 (file)
index 0000000..6c1177e
--- /dev/null
@@ -0,0 +1,103 @@
+#! /bin/sh
+
+### BEGIN INIT INFO
+# Provides:    logind
+# Required-Start:      $dbus $remote_fs $syslog
+# Required-Stop:       $dbus $remote_fs $syslog
+# Default-Start:       2 3 4 5
+# Default-Stop:                
+# Short-Description:   elogind session management daemon
+### END INIT INFO
+
+set -e
+
+# /etc/init.d/elogind: start and stop the elogind session management daemon
+
+ELOGIND=/lib/elogind/elogind
+
+test -x $ELOGIND || exit 0
+
+umask 022
+
+. /lib/lsb/init-functions
+
+ELOGIND_OPTS="-D"
+
+# Are we running from init?
+run_by_init() {
+    ([ "$previous" ] && [ "$runlevel" ]) || [ "$runlevel" = S ]
+}
+
+check_for_upstart() {
+  if init_is_upstart; then
+         exit $1
+  fi
+}
+
+export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
+
+case "$1" in
+  start)
+       check_for_upstart 1
+       log_daemon_msg "Starting session management daemon" "elogind" || true
+       if start-stop-daemon --start --quiet --oknodo --pidfile /run/elogin.pid --exec $ELOGIND -- $ELOGIND_OPTS; then
+           log_end_msg 0 || true
+       else
+           log_end_msg 1 || true
+       fi
+       ;;
+  stop)
+       check_for_upstart 0
+       log_daemon_msg "Stopping session management daemon" "elogind" || true
+       if start-stop-daemon --stop --quiet --oknodo --pidfile /run/elogind.pid; then
+           log_end_msg 0 || true
+       else
+           log_end_msg 1 || true
+       fi
+       ;;
+  reload|force-reload|restart)
+       check_for_upstart 1
+       log_daemon_msg "Restarting session management daemon" "elogind" || true
+       start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile /run/elogind.pid
+       if start-stop-daemon --start --quiet --oknodo --pidfile /run/elogind.pid --exec $ELOGIND -- $ELOGIND_OPTS; then
+           log_end_msg 0 || true
+       else
+           log_end_msg 1 || true
+       fi
+       ;;
+  try-restart)
+       check_for_upstart 1
+       log_daemon_msg "Restarting session management daemon" "elogind" || true
+       RET=0
+       start-stop-daemon --stop --quiet --retry 30 --pidfile /run/elogind.pid || RET="$?"
+       case $RET in
+           0)
+               # old daemon stopped
+               if start-stop-daemon --start --quiet --oknodo --pidfile /run/elogind.pid --exec $ELOGIND -- $ELOGIND_OPTS; then
+                   log_end_msg 0 || true
+               else
+                   log_end_msg 1 || true
+               fi
+               ;;
+           1)
+               # daemon not running
+               log_progress_msg "(not running)" || true
+               log_end_msg 0 || true
+               ;;
+           *)
+               # failed to stop
+               log_progress_msg "(failed to stop)" || true
+               log_end_msg 1 || true
+               ;;
+       esac
+       ;;
+  status)
+       check_for_upstart 1
+       status_of_proc -p /run/elogind.pid $ELOGIND elogind && exit 0 || exit $?
+       ;;
+  *)
+       log_action_msg "Usage: /etc/init.d/elogind {start|stop|reload|force-reload|restart|try-restart|status}" || true
+       exit 1
+esac
+
+exit 0