OpenWrt inistscript

A problémám a következő:
Program nyit egy tcp szervert ha bejön a reset szó akkor gpio meglóbál. Mindez induljon el automatikusan.

A megvalósítással a következőig jutottam:

/usr/bin/resetserver:


if [ $# -ne 2 ]; then
	echo "starting resetserver requires 2 arguments: port and gpio number";
else 
  nc -l -p $1 |
  while read a ; 
  do
    if echo $a | grep -q '^reset'; then
    echo "0" >/sys/class/gpio/gpio$2/value 
	    sleep 1
	    echo "1" >/sys/class/gpio/gpio$2/value 
	    echo "AVR reset performed";
    fi ;
  done
fi;

/etc/init.d/resetserver:


start() {
  echo $RESET_GPIO > /sys/class/gpio/export
  echo "out" >/sys/class/gpio/gpio$RESET_GPIO/direction
  echo "1" >/sys/class/gpio/gpio$RESET_GPIO/value
  echo "Starting resetserver";
  start-stop-daemoon -S -m -p /var/run/resetserver.pid -q -x $PROG -- $PORT $RESET_GPIO & 
}

stop() {
  echo "Stopping resetserver";
	[ -f /var/run/resetserver.pid ] &\
			-p /var/run/resetserver.pid -s TERM

		rm -f /var/run/resetserver.pid
	}
  echo "1" >/sys/class/gpio/gpio$RESET_GPIO/value # to ensure that the avr should not left in reset
}

Problélmám:
Ha resetserver 4242 7 &-el indítom akkor szépen megy.
Ha viszont /et/init.d/resetserver start -al akkor a csatlakozás után kilép az nc.
Továbbá ha a stopot hívom meg akkor az nc tovább fut. pedig a pidfájlban lévő pid jó.
Próbáltam azt is, hogy a resetserver tartalmát belehegesztem az initscriptbe de azzal is ugyanez volt a helyzet.

Hozzászólások

Ez csak vazlat, tele van hibaval:


function run() {
  nc -l -p $1
  echo $$ > /var/run/blabla.pid
}

function start() {
  echo -n "Starting blabla... "
  run &
  echo "OK"
}

Ennek elvben muxenie kene.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.