#!/bin/sh /etc/rc.common # Copyright (C) 2010 OpenWrt.org START=20 NAME=ap51-flash start_daemon() { local cfg="$1" config_get_bool loop "$cfg" loop config_get ifname "$cfg" ifname config_get rootfs "$cfg" rootfs config_get kernel "$cfg" kernel config_get ubnt "$cfg" ubnt [ "$loop" != "1" ] && loop=0 if [ -n "$ifname" -a -n "$rootfs" -a -n "$kernel" ] || \ [ -n "$ifname" -a -n "$ubnt" ]; then PID="$(cat /var/run/$NAME.sh-$ifname.pid 2> /dev/null)" if ! pgrep "^.[ ]*$PID "; then rm "/var/run/$NAME.sh-$ifname.pid" fi if find /var/run/ -name "$NAME.sh-$ifname.pid"; then echo "Can't start more than one ap51-flash for interface $ifname!" return 0 fi start-stop-daemon -S -b -m -p "/var/run/$NAME.sh-$ifname.pid" -n $NAME.sh \ -x /usr/lib/ap51-flash/$NAME.sh -- "$loop" "$ifname" "$rootfs" "$kernel" "$ubnt" fi } start() { config_load ap51-flash config_foreach start_daemon flash } stop() { # Terminating all ap51-flash processes echo "WARNING: Going to teminate all ap51-flash processes! (hope you made sure that they're not flashing right now)" echo "OR you can stop this with Ctrl+c within 10 seconds" sleep 10 find /var/run/ -name "$NAME.sh-*.pid" -exec start-stop-daemon -K -s TERM -p '{}' -n "$NAME.sh" \; -exec rm -f '{}' \; find /var/run/ -name "$NAME.sh-*.pid" -exec start-stop-daemon -K -s TERM -p '{}' -n "$NAME" \; -exec rm -f '{}' \; }