#! /bin/sh
### BEGIN INIT INFO
# Provides:          elogind
# Required-Start:    dbus $remote_fs $syslog
# Required-Stop:     dbus $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: 
# Description:       
### 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
. /etc/rc.d/init.d/functions

ELOGIND_OPTS="-D"
ELOGIND_PID=/run/elogind.pid

export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"

case "$1" in
  start)
    boot_mesg "Starting session management daemon elogind"
    if start-stop-daemon --start --quiet --oknodo --pidfile $ELOGIND_PID --exec $ELOGIND -- $ELOGIND_OPTS; then
        echo_ok
    else
        echo_failure
    fi
    ;;
  stop)
    boot_mesg "Stopping session management daemon elogind"
    if start-stop-daemon --stop --quiet --oknodo --pidfile $ELOGIND_PID; then
        echo_ok
    else
        echo_failure
    fi
    ;;
  reload)
    boot_mesg "Reloading session management daemon elogind"
    if  start-stop-daemon --stop --signal HUP --quiet --pidfile $ELOGIND_PID; then
        echo_ok
    else
        echo_failure
    fi
    ;;
  force-reload|restart)
    boot_mesg "Restarting session management daemon elogind"
    # Use SIGINT for graceful restart so that existing sessions are not lost.
    start-stop-daemon --stop --quiet --oknodo --signal INT --retry 30 --pidfile $ELOGIND_PID
    if start-stop-daemon --start --quiet --oknodo --pidfile $ELOGIND_PID --exec $ELOGIND -- $ELOGIND_OPTS; then
        echo_ok
    else
        echo_failure
    fi
    ;;
  try-restart)
    boot_mesg "Restarting session management daemon elogind"
    RET=0
    start-stop-daemon --stop --quiet --retry 30 --pidfile $ELOGIND_PID || RET="$?"
    case $RET in
        0)
        # old daemon stopped
        if start-stop-daemon --start --quiet --oknodo --pidfile $ELOGIND_PID --exec $ELOGIND -- $ELOGIND_OPTS; then
            echo_ok
        else
            echo_failure
        fi
        ;;
        1)
        # daemon not running
        log_progress_msg "(not running)" || true
        echo_ok
        ;;
        *)
        # failed to stop
        log_progress_msg "(failed to stop)" || true
        echo_failure
        ;;
    esac
    ;;
  status)
    if start-stop-daemon --status --pidfile $ELOGIND_PID --exec $ELOGIND > /dev/null; then
    	echo "Session management daemon elogind is running"
    else
        echo "Session management daemon elogind is not running"
    fi
    start-stop-daemon --status --quiet --pidfile $ELOGIND_PID --exec $ELOGIND
    ;;
  *)
    echo "Usage: /etc/init.d/elogind {start|stop|reload|force-reload|restart|try-restart|status}" || true
    exit 1
esac

exit 0
