我正在为允许TCP连接的嵌入式busybox系统编写应用程序,然后向所有连接的客户端发送消息。当我远程登录到框并从shell提示符运行应用程序时,它工作正常,但是从inittab启动它时遇到问题。它将启动,我可以使用一个客户端连接到该应用程序。它成功地向该客户端发送一条消息,然后崩溃。如果我在发送任何消息之前连接第二个客户端,它也会崩溃。同样,如果我从shell提示符启动它,一切都很完美。
以下错误是日志中出现的错误:
<11>Jan 1 00:02:49 tmmpd.bin: ERROR: recvMessage failed, recv IO error
<11>Jan 1 00:02:49 tmmpd.bin: Some other LTK TCP error 103. Closing connection 10
<11>Jan 1 00:02:49 tmmpd.bin: ERROR: recvMessage failed, recv IO error
<11>Jan 1 00:02:49 tmmpd.bin: Some other LTK TCP error 103. Closing connection 10
任何建议都将不胜感激!
答案 0 :(得分:0)
我在arm-qemu
和busybox
进行了一些测试,我可以启动脚本作为用户测试在后台运行。
我创建了一个新用户&#34; test&#34;:
buildroot-dir> cat etc/passwd
test:x:1000:1000:Linux User,,,:/home/test:/bin/sh
创建了一个简单的testscript.sh
:
target_system> cat /home/test/testscript.sh
#!/bin/sh
while :
do
echo "still executing in bg"
sleep 10
done
我的/etc/init.d/rcS
我为它添加了一个启动命令:
#!/bin/sh
mount -t proc none /proc
mount -t sysfs none /sys
/sbin/mdev -s
/bin/su test -c /home/test/testscript.sh& # < Added this
现在,当我启动系统时,脚本将在后台运行,当我grep进程时,它已作为用户test
启动(默认root用户只是0
):< / p>
target_system> ps aux | grep testscript
496 test 0:00 sh -c home/test/testscript.sh
507 test 0:00 {testscript.sh} /bin/sh home/test/testscript.sh