Linux

busysbox 重啟在初始化腳本中不起作用

  • December 12, 2017

我們有基於 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(強制重啟而不通過初始化)可以工作,但我們也需要執行停止腳本,所以不能使用它。

因此,busybox 似乎正在獲得重新啟動的信號,但僅在執行初始化腳本後才進行處理。

這正是initBusyBox 現在的工作方式,是的。不,這是不可配置的。您必須更改程序並重新建構它。

進一步閱讀

引用自:https://unix.stackexchange.com/questions/410421