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
|