Linux掉电处理
在嵌入式设备中,掉电处理一直是一项比较麻烦的工作,在具有Linux系统的设备中,系统的种种数据的处理更是增加掉电处理的难度。现在做以下几点总结,再遇到类似问题可以做个参考。
1,系统启动的处理
在系统上电启动时,会加载/etc/inittab,进行初始化处理,然后执行各个脚本。如S13ntp..类似,分区时将文件系统放在分区1的话,mount时最好read only的方式,否则上下几次,系统遇到阻塞的情况断电就很容易损坏该分区。初始化脚本也尽量优化,不要让系统阻塞。
2,检测掉电事件
加上一个线程专门用于检测掉电事件,其他线程通过标志如果知道了掉电事件,也尽快退出。
3,reboot
若是sync,fflush后还有时间多余,尝试reboot系统,这样会有系统做一些系统级的同步数据。
4,重新上电时fsck
进行fsck修复的目的是,若文件不完整可以删除,不至于出现错误文件出现未知错误。