gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 17:35:35 27 4
gpt4 key购买 nike

我正在为嵌入式 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

如有任何建议,我们将不胜感激!

最佳答案

我在 arm-qemubusybox 中进行了一些测试,并且我能够作为用户测试启动一个脚本以在后台运行。

我创建了一个新用户“test”:

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):

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

关于c - 仅当从 busybox 上的 inittab 启动时应用程序才会崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22976249/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com