问题来源
在工作中
同事在使用RTC接口时,发现了一个奇怪但又很有意思的问题
linux中使用date设置时间后用hwclock -w同步到RTC,重启后,时间不能往前设置
在使用的时候发现/etc中有一个timestamp,删除就能设置时间;
但是我这边测试一直没有复现同事说的问题,一直没有出现时间戳文件;
出现时间戳之后,也能往前设置时间。
原因分析
1.timestamp时间戳文件怎么生成的,他的作用是什么?
时间戳表示unix当初订立的时间,简单用 1970-1-1 , 0:00:00 到现在经过的秒数
通过grep寻找到/etc/rc6.d/S25save-rtc.sh
内容如下,其实就是生成时间戳文件
通过对文件系统运行级别的了解
rc6.d是运行级别是6,即只有reboot的时候才能运行。如上图
到这就解决了为什么我一直没有生成时间戳文件的原因,同事一直是通过reboot重启,而我是通过断电重启。
运行级别相关知识
init进程读取“/etc/inittab”文件中的信进入initta