首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【openwrt】Openwrt系统的reboot流程

    reboot流程 应用层reboot流程 内核reboot流程 参考 当我们在openwrt系统的终端中敲下 reboot指令后,系统需要进行一系列动作后,才会真正的进行硬件重启。...(magic[which]); // reboot -f } 应用层reboot流程 根据前面reboot的源码,如果执行的是不带 -f选项的reboot,那么busybox就会发送信号给1号进程,...0x45584543 //openwrt/build_dir/toolchain-aarch64_cortex-a53_gcc-12.3.0_musl/musl-1.2.4/src/linux...LINUX_REBOOT_CMD_RESTART,所以后续会调用kernel_restart()函数进行系统重启之前准备工作以及最后的重启动作(其他参数会对应其他动作,请自行参考源码) kernel_restart_prepare...参考 openwrt reboot流程 记一个openwrt reboot异步信号处理死锁问题 linux reboot/panic子系统 我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https

    7300

    记一个openwrt reboot异步信号处理死锁问题

    现场分析 既然知道了 reboot 是通过发送信号给 init 进程,那么下一步自然就是搞清楚 init 进程为什么卡住了。 出问题时控制台还能用,这是个好消息。...S interruptible sleep (waiting for an event to complete)` 但只知道这个没太大作用,我们需要更多信息,幸好 linux 还有 proc 文件系统...上去,中途开始跟踪,例如目前这种情况,在 reboot 之前先运行 strace -p 1,即可观察卡住前 1号进程 都执行了什么操作。...,最终卡住。...可以参考 Linux 多线程应用中如何编写安全的信号处理函数 这里贴下 man pthread_sigmask 中的例子,主线程中先屏蔽一些信号,然后创建了一个特定的线程,通过 sigwait 来检测处理这些信号

    2.4K20
    领券