부팅 시 시작되면 NC 서버가 작동하지 않습니다.

부팅 시 시작되면 NC 서버가 작동하지 않습니다.

POST 메서드에서 받은 내용을 파일에 쓰기 위해 (ba)sh 스크립트를 작성했습니다.

#!/bin/sh
PORT=$1
FILE=$2

while true
do
  echo -e "HTTP/1.1 200 OK\n\n" | ./busybox-armv7l nc -l -p $PORT | tr '[\r\n]' '#' | sed "s/.*##//" | tr '#' '\n' | ( read line; echo $line > $FILE; echo $line )
done

콘솔에서 스크립트를 시작하면 제대로 작동합니다.

./server 5000 /tmp/foo

그리고 지정된 파일은 수신된 데이터로 채워집니다. 하지만 부팅 시 시작하려고 하면 더 이상 작동하지 않습니다. 상업용 임베디드 장치이므로 /use/sbin/init.sh직접 추가할 수 있는 스크립트가 있습니다.

#!/bin/sh
export PATH=/usr/bin:/bin/:/usr/sbin:/sbin

mount -t proc none /proc
mount -t sysfs none /sys
mount -t tmpfs none /tmp

export MACHINE_ID=`cat /sys/devices/soc0/machine | sed 's/ /-/g'`

echo 8 >/proc/sys/kernel/printk

mkdir -p /dev/pts
mount -t devpts devpts /dev/pts -ogid=5,mode=620

ln -snf /tmp /dev/shm

mkdir /tmp/sd
mount -t vfat /dev/mmcblk0p1 /tmp/sd -o rw

depmod -a

/etc/init.d/syslog start

ifconfig lo up
ifconfig eth0 up
sleep 1s
mii-tool --reset

ifconfig eth0 192.168.1.132

[ ! -x /etc/dropbear/dropbear_rsa_host_key ] || /usr/sbin/dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key
[ ! -x /etc/dropbear/dropbear_dss_host_key ] || /usr/sbin/dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key

/usr/sbin/dropbear -r /etc/dropbear/dropbear_rsa_host_key -p 22

/home/root/server.sh 5000 /tmp/foo > /tmp/log.txt &

/bin/sh

nc서버가 아무것도 수신하지 못하고 log.txt계속 채워지는 경우가 있습니다 \n.

여기에 명백한 오류가 있습니까? 문제를 추가로 디버깅할 수 있는 방법이 있나요?

답변1

현재 디렉토리가 다른 경우에도 요청된 실행 파일을 찾을 수 있도록 상대 경로 대신 절대 경로를 사용하십시오.

echo -e "HTTP/1.1 200 OK\n\n" | /home/root/busybox-armv7l nc -l -p $PORT | tr '[\r\n]' '#' | sed "s/.*##//" | tr '#' '\n' | ( read line; echo $line > $FILE; echo $line )

관련 정보