我正在为嵌入式busybox系统编写一个应用程序,它允许TCP连接,然后向所有连接的客户端发送消息。当我将网络发送到框中并从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
如有任何建议,将不胜感激!
发布于 2014-04-10 01:32:17
我在arm-qemu
和busybox
中进行了一些测试,并且能够启动一个脚本作为用户测试,以便在后台运行。
我创建了一个新的用户“测试”:
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
(默认根用户仅为0
)启动:
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
https://stackoverflow.com/questions/22976249
复制相似问题