进一步阅读

进一步阅读

我们有基于 Beaglebone 黑色的定制板,配有 256MB RAM 和 4GB eMMC。

我们从Linux-3.12升级到Linux-4.4,从busybox-1.20.2升级到busybox-1.26.2。
现在,在 busybox-1.26.2 中,我们看到了 busybox-1.20.2 中没有的问题

我在最后一个初始化脚本之一中添加了以下代码。

if [ -f /home/ankur ] ; then
    count=50
    rm /home/ankur
    echo "----Check Whoami----"
    whoami  #prints root
    reboot
    echo "--------------------"
    while [ true ]
    do
       count=$((count - 1 ))
       echo "Count = $count"
       if [ $count -le 0 ];then
            break;
       fi
       echo "Sleep 1"
       sleep 1
    done
fi

我触摸了该文件/home/ankur,然后重新启动了开发板。
我观察到,系统没有重新启动,但计数器下降到 0,然后执行其他初始化脚本,然后板重新启动。

因此,busybox 似乎正在获取信号,reboot但仅在执行初始化脚本后才进行处理。

现在我的问题是,在完成所有初始化脚本之前是否有办法进入reboot董事会。是否有任何 busybox 配置可以禁用此重启阻止?

reboot -f(强制重新启动而不通过 init)可以工作,但我们还需要运行停止脚本,因此无法使用它。

答案1

因此,busybox 似乎正在收到重新启动的信号,但仅在执行初始化脚本后才进行处理。

是的,这正是initBusyBox 现在的工作方式。不,这是不可配置的。您必须更改程序并重新构建它。

进一步阅读

相关内容