【openwrt】Openwrt系统的reboot流程


当我们在openwrt系统的终端中敲下 reboot指令后,系统需要进行一系列动作后,才会真正的进行硬件重启。而这一系列的动作可以分为——应用程序的停止和内核的停止。在Openwrt系统中,应用程序的停止是1号进程(也就是 procd)完成的,应用程序全部停止后才会进入内核的重启流程。下面我们将分别来介绍应用程序和内核停止的流程。

首先,我们注意到reboot指令是busybox提供的,而且reboot指令支持传入不同的参数来执行不同的重启模式。

# ls /sbin/reboot -alh
lrwxrwxrwx    1 root     root          14 Apr 17 13:15 /sbin/reboot -> ../bin/busybox

/# reboot --help
BusyBox v1.36.1 (2024-05-10 17:21:49 UTC) multi-call binary.
Usage: reboot [-d DELAY] [-nf]
Reboot the system
        -d SEC  Delay interval  
        -n      Do not sync  
        -f      Force (don't go through init) 

下面是reboot指令的参数解释。

参数 说明
-d SEC Delay interval 延时几秒之后重启
-n 不执行sync
-f 强制重启,跳过应用层直接走内核重启流程

关于reboot指令的具体实现可以参考busybox源码:halt.c

int halt_main(int argc UNUSED_PARAM, char **argv)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知否,知否

来一杯冰美式把

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值