仅当从busybox上的inittab启动时,应用程序才会崩溃

时间:2014-04-10 00:08:07

标签: c linux tcp busybox

我正在为允许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 

任何建议都将不胜感激!

1 个答案:

答案 0 :(得分:0)

我在arm-qemubusybox进行了一些测试,我可以启动脚本作为用户测试在后台运行。

我创建了一个新用户&#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