定时自动重起的关键是有个地方写crontab配置文件。
" [" ^# D6 W* k8 A' T F. d$ d; v, S! c O; y
我设想中的几种实现定时自动重起的方法:
# A- r" ]$ ]! n/ V1. 如果flash文件系统可写入(ms BCM 4.0公版是允许主文件系统是squashfs(只读),但部分目录和空间是jffs2(可写)的)。这样可以把crontab文件放到可写区就行了。
8 y; T- T* Z( i8 w# Q' J6 C1 @: x2. 如果#1不行的话,那就把crontab内容放到NVRAM中。当然这就要写工具把crontab内容编码到NVRAM中,再在启动时读出NVRAM后解码交给
+ Z' b P- J6 T! Dcron。3 c* x% D) |, H1 T$ X: i
3. 最简单粗暴的方法就是在/var下放crontab。固件中固化crontab内容为每天凌晨3点重启,在启动时把这个固化的crontab文件放到/var下。这样如果没USB硬盘的话就会在每天3点重启。如果有移动硬盘的话,可以在/opt/etc/init脚本中删除或者修改/var/crontab文件,这样就可阻止每天3点重启了。或者比方说用/opt/etc/init修改/var/crontab成每天晚上2:55分定时关闭脱机下载程序,然后3点自动重启。这样就解决了定时自动重起和脱机下载的矛盾了。
( t' x% E& _- i1 R
3 x4 r# Y, Z, }2 U% m8 ], W可能#3对大部分人应该够用了。 |