软重启(reboot)

嵌入式开发中重启操作常用但不同方式实现和现象有别。断电重启是完整重启,硬件重新上电;软重启是软件机制。软重启存在外挂设备需自主实现及重启卡顿问题,如应用层和内核卡顿。还介绍了手动执行“reboot”命令的大致原理。

说明

  • 嵌入式开发中,重启操作是最常用的操作之一,由于其操作简单,不容易受到关注,但是不同的重启方式实现和现象其实是不一样的。

断电重启

  • 操作:关机后再开机,例如:拔掉电源再接上电源或者电池没电后再充电开机。
  • 该方式是完整的重启操作,硬件会重新上电,内存等都会被重置,软件会重新执行,重新初始化等。

软重启

  • 操作:在Linux平台上手动执行reboot命令重启设备,其它平台类似。
  • 不同于断电重启,软重启是软件机制,其通过信号或者其它方式通知各个模块设备需要重启,模块需要自己实现模块的重启,从而实现设备的重启。

异常现象

  1. 外挂设备需要自主实现软重启
  • 事例:智能家居项目,在开发板上外挂一个rf模块(单片机),调试时发现在开发板上执行reboot,单片机不会有任何重启操作,重启后由于设备端与单片机端数据和状态不一致出现一些异常。
  • 确认原因:系统重启时,重启命令并没有传递到外挂模块,外挂模块根本不知道开发板已重启,需要自主实现通知流程。
  1. 重启卡顿问题
  • 嵌入式开发中,有时会出现执行reboot后,设备并没有立即重启,而是等了几分钟,甚至很久设备才重启。

2.1 应用层卡顿

  • 事例:MT8516平台,出现重启卡顿,使用“reboot -f”才能立即重启。
  • 确认原因:MT8516平台使用的是systemd机制,reboot命令执行会向initd进程发送信号,initd再向其子进程(所有进程)发送信号,等待它们运行结束,开发板主程序处理有问题,在收到信号后,做清理操作时做了串口设备的flush操作,该flush操作会一直等待执行完成,但是其它进程和线程一直在写该串口设备,导致死锁,进程无法退出,所以设备无法重启。

2.2 内核卡顿

  • 事例:ssc323平台,出现重启卡顿,使用“reboot -f”也无法解决。
  • 确认原因:执行内核重启时,平台提供的wifi驱动处理有问题,概率性出现忙等,所以设备无法重启。

大致原理

  • 手动执行命令“reboot”,实际上是执行的reboot程序,在嵌入式平台中,其实现在busybox中。
  • 查看busybox中的源码可知,有两种情况
  1. reboot -f
  • 直接调用内核重启接口,并不通知上层应用,可能导致上层应用缓存丢失等。
  1. reboot 其它选项
  • 给第一个进程init发送TERM信号,init收到该信号后,会向其子进程(即所有进程)发送该信号,待其它进程处理TERM信号完后,init进程才会调用内核重启接口,进行内核重启。
### 回答1: 云主机软重启是指在云计算环境下,通过软件控制对主机进行重启操作,相对于硬重启而言,软重启可以更加安全地对主机进行重启软重启会先尝试关闭正在运行的程序及服务,等待系统进程结束后再重启,避免了数据的丢失和文件的损坏,同时也可以加快重启速度。 ### 回答2: 云主机软重启是指通过软件手段对云主机进行重启操作。在云计算环境中,云主机是基于虚拟化技术实现的,其运行在物理服务器上的虚拟机实例。当云主机出现问题或需要进行维护时,可以选择软重启来重新启动虚拟机实例,以解决问题或使配置更改生效。 与硬重启相比,软重启不会直接对物理服务器进行重新启动,而只是对虚拟机实例进行重启软重启操作会关机虚拟机实例,然后再重新启动它。在关机过程中,会尝试正常关闭正在运行的程序或服务,保存临时数据并进行必要的清理操作,以确保数据的完整性和稳定性。然后,系统会运行启动脚本或配置文件,重新引导虚拟机实例并加载必要的服务和应用程序。 云主机软重启具有多个优点。首先,相对于硬重启软重启的过程更加平滑和可控,可以最大程度地减少对用户业务的影响。其次,软重启可以通过重新加载系统的设置和配置文件,修复一些软件相关的问题。此外,软重启还可以使更新的配置生效,例如修改了网络设置或安全策略,而无需完全重建云主机。 总之,云主机软重启是通过软件手段对虚拟机实例进行重启操作的方式,它具有平滑、可控和修复问题的特点,是维护和配置云主机的常用方法之一。 ### 回答3: 云主机软重启指的是通过软件或操作系统命令来重新启动云主机。与硬重启相比,软重启不会中断电源供应或重新启动底层硬件,而是重新启动操作系统和相关的软件程序。 云主机软重启通常是为了解决某些软件或操作系统方面的问题,比如应用程序崩溃、系统无响应等。通过软重启,可以重新加载操作系统和应用程序,重置系统状态,使其恢复正常运行。 与硬重启相比,软重启的过程较为快速,因为它只需要重新启动操作系统和软件程序,而不需要重新启动整个物理服务器。软重启可以避免中断云主机的运行,保证用户的业务连续性。 在进行软重启之前,通常会提醒用户保存正在进行的工作和关闭打开的应用程序,以免造成数据丢失。软重启后,用户可以重新打开应用程序并继续进行工作。 总而言之,云主机软重启是一种重新启动云主机操作系统和软件程序的方式,主要用于解决软件或操作系统问题,保证系统的正常运行。它是一种快速、方便的重启方式,不会中断云主机的运行,确保用户的业务连续性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值