1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- #!/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`"
- [ -z "`ps | grep "^.[ ]*$PID "`" ] && \
- rm /var/run/$NAME.sh-$ifname.pid
- [ -n "`ls /var/run/$NAME.sh-$ifname.pid 2> /dev/null`" ] && {
- echo "Can't start more than one ap51-flash for interface $ifname!"
- return 0
- }
- 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
- local pidfile
- for pidfile in `ls /var/run/${NAME}.sh-*.pid 2> /dev/null`; do
- start-stop-daemon -K -s TERM -p "${pidfile}" -n "${NAME}.sh" >/dev/null
- rm -f "${pidfile}"
- done
- for pidfile in `ls /var/run/${NAME}-*.pid 2> /dev/null`; do
- start-stop-daemon -K -s TERM -p "${pidfile}" -n "${NAME}" >/dev/null
- rm -f "${pidfile}"
- done
- }
|