Files
g15daemon/debian/g15daemon.init
T

125 lines
2.8 KiB
Bash
Raw Normal View History

2007-08-28 20:09:54 +02:00
#! /bin/sh
### BEGIN INIT INFO
# Provides: g15daemon
2019-05-02 18:11:42 +03:00
# Required-Start: $syslog $local_fs $remote_fs
# Required-Stop: $syslog $local_fs $remote_fs
2007-08-28 20:09:54 +02:00
# Should-Start: $remote_fs
# Should-Stop: $remote_fs
2009-08-13 08:20:02 +02:00
# X-Start-Before: xdm kdm gdm ldm sdm
2007-08-28 20:09:54 +02:00
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: load deamon for Logitech G15 keyboard lcd display
# Description: load deamon for Logitech G15 keyboard lcd display
### END INIT INFO
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/g15daemon
NAME=g15daemon
2019-05-02 18:11:42 +03:00
DESC="Logitech G15 keyboard LCD multiplexer"
2007-08-28 20:09:54 +02:00
2009-08-13 08:20:02 +02:00
[ -x "$DAEMON" ] || exit 0
2007-08-28 20:09:54 +02:00
2019-05-02 18:11:42 +03:00
. /lib/lsb/init-functions
2007-08-28 20:09:54 +02:00
# Include g15daemon defaults if available
if [ -f /etc/default/g15daemon ] ; then
2019-05-02 18:11:42 +03:00
. /etc/default/g15daemon
2007-08-28 20:09:54 +02:00
fi
2009-08-19 07:33:22 +02:00
if [ "$G15DEBUG" = "on" ]; then
log() {
logger -p daemon.debug -t g15 -- "$*"
}
else
log() {
true
}
fi
2019-05-02 18:11:42 +03:00
check_new_init() {
if [ -d /run/systemd/system ] ; then
exit $1
2009-08-06 08:32:33 +02:00
fi
}
2019-05-02 18:11:42 +03:00
load_uinput() {
if [ ! -e /dev/uinput ] ; then
modprobe -q uinput
udevadm settle -t 5 -E /dev/uinput
[ -e /dev/uinput 3 ] || return 1
2009-08-13 08:20:02 +02:00
fi
}
is_running() {
2019-05-02 18:11:42 +03:00
start-stop-daemon --stop --test --quiet --pidfile \
/var/run/$NAME.pid --exec $DAEMON
2009-08-13 08:20:02 +02:00
}
do_start() {
2019-05-02 18:11:42 +03:00
start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
--exec $DAEMON -- $DAEMON_OPTS
2009-08-13 08:20:02 +02:00
}
do_stop() {
2019-05-02 18:11:42 +03:00
start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
--oknodo --retry 5 --exec $DAEMON
2009-08-13 08:20:02 +02:00
}
2007-08-28 20:09:54 +02:00
case "$1" in
2019-05-02 18:11:42 +03:00
start)
log_daemon_msg "Starting $DESC" $NAME
load_uinput || log_warning_msg "/dev/uinput not found"
do_start
log_end_msg $?
2009-08-13 08:20:02 +02:00
;;
2019-05-02 18:11:42 +03:00
stop)
log_daemon_msg "Stopping $DESC" $NAME
if do_stop ; then
log_end_msg 0
2009-08-19 07:33:22 +02:00
else
2019-05-02 18:11:42 +03:00
log_end_msg 1
2009-08-19 07:33:22 +02:00
exit 1
fi
;;
2019-05-02 18:11:42 +03:00
force-reload)
is_running && $0 restart || exit 0
;;
restart)
log_daemon_msg "Restarting $DESC" $NAME
if ! do_stop ; then
log_end_msg 1
exit 1
fi
# the device is slow to shut-down
sleep 1
load_uinput || log_warning_msg "/dev/uinput not found"
do_start
log_end_msg $?
;;
status)
is_running
exit $?
;;
udev)
check_new_init 0
log "calling g15 udev; action: $ACTION, product $PRODUCT"
if [ "x$ACTION" = "xadd" ] ; then
# If g15daemon is running, it will handle replugging.
is_running && exit 0
load_uinput
do_start
fi
;;
*)
N=/etc/init.d/$NAME
log_action_msg "Usage: $N {start|stop|restart|force-reload|status}"
exit 1
;;
2007-08-28 20:09:54 +02:00
esac
exit 0