package/modem-manager: init script for systemV-like init systems

ModemManager get started by NetworkManager, in case of systemd init
system. In case of other systems it needs to be started by init script.

Debian [1] solved it by detection in code. For Buildroot it's IMHO
enough to install init script for systemV-like init systems.

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=770871

[Thomas:
 - slightly simplify the script by removing the MODEMMANAGER_BIN
   variable which was used at only one place, and use directly $?
   instead of an intermediate $ret variable.
 - split the too long line added in the .mk file.]

Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Petr Vorel 2015-07-01 22:11:12 +02:00 committed by Thomas Petazzoni
parent 7de0ff0ed4
commit 7f1def6936
2 changed files with 47 additions and 0 deletions

View File

@ -0,0 +1,42 @@
#!/bin/sh
#
# Starts ModemManager
#
PIDFILE=/var/run/ModemManager.pid
[ -x $MODEMMANAGER_BIN ] || exit 0
start() {
echo -n "Starting ModemManager: "
umask 077
start-stop-daemon -S -q -b -m -p $PIDFILE \
--exec /usr/sbin/ModemManager
[ $? = 0 ] && echo "OK" || echo "FAIL"
}
stop() {
echo -n "Stopping ModemManager: "
start-stop-daemon -K -q -p $PIDFILE
[ $? = 0 ] && { echo "OK"; rm -f $PIDFILE; } || echo "FAIL"
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
restart
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit $ret

View File

@ -26,4 +26,9 @@ else
MODEM_MANAGER_CONF_OPTS += --without-mbim
endif
define MODEM_MANAGER_INSTALL_INIT_SYSV
$(INSTALL) -m 0755 -D package/modem-manager/S44modem-manager \
$(TARGET_DIR)/etc/init.d/S44modem-manager
endef
$(eval $(autotools-package))