Package: greetd
Version: 0.10.0-1
Severity: wishlist

Greetd does not include an init script, forcing the use of SystemD.  The
attached script seems to work for me, please consider including it with
the Debian package for greetd.

Thanks.

#!/bin/sh

### BEGIN INIT INFO
# Provides:          greetd
# Required-Start:    $local_fs $remote_fs
# Required-Stop:     $local_fs $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: The greetd login manager
### END INIT INFO

set -e

DEFAULT_DISPLAY_MANAGER_FILE=/etc/X11/default-display-manager

PATH=/bin:/usr/bin:/sbin:/usr/sbin
DAEMON=/usr/sbin/greetd
PIDFILE=/var/run/greetd.pid

test -x $DAEMON || exit 0

. /lib/lsb/init-functions

SSD_START_ARGS="--pidfile $PIDFILE --name $(basename $DAEMON) --startas $DAEMON"
SSD_STOP_ARGS="--pidfile $PIDFILE --name $(basename $DAEMON) --retry 
TERM/5/TERM/5"

case "$1" in
  start)
    if [ -e $DEFAULT_DISPLAY_MANAGER_FILE ] &&
       [ "$(cat $DEFAULT_DISPLAY_MANAGER_FILE)" != "$DAEMON" ]; then
      echo "Not starting greetd; it is not the default" \
        "display manager."
    else
      log_daemon_msg "Starting greetd" "greetd"
      start-stop-daemon --start --quiet $SSD_START_ARGS \
        || log_progress_msg "already running"
      log_end_msg 0
    fi
  ;;

  restart)
    /etc/init.d/greetd stop
    [ -f $PIDFILE ] && exit 1
    /etc/init.d/greetd start
  ;;

  force-reload)
    /etc/init.d/greetd restart
  ;;

  stop)
    log_daemon_msg "Stopping greetd" "greetd"
    if ! [ -f $PIDFILE ]; then
      log_progress_msg "not running ($PIDFILE not found)"
    else
      start-stop-daemon --stop --quiet $SSD_STOP_ARGS
      SSD_RES=$?
      if [ $SSD_RES -eq 1 ]; then
        log_progress_msg "not running"
      fi
      if [ $SSD_RES -eq 2 ]; then
        log_progress_msg "not responding to TERM signals"
      else
        if [ -f $PIDFILE ]; then
          log_progress_msg "(removing stale $PIDFILE)"
          rm $PIDFILE
        fi
      fi
    fi
    log_end_msg 0
  ;;

  *)
    echo "Usage: /etc/init.d/greetd {start|stop|restart|force-reload}"
    exit 1
    ;;
esac

exit 0

Reply via email to