起動時に起動すると、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 )

おすすめ記事