2011年(6)
分类: 系统运维
2011-06-30 16:05:49
一、问题描述
在嵌入式开发板上利用thttp服务器发布的本地网页,实现设备的本地配置。其中有一项功能是现实对设备IP地址以及子网掩码的修改。现在出现的问题是:完成设备IP地址的修改之后,因为配置网页的IP地址也做了相应的改变,导致修改成功之后的信息无法反馈,也无法跳转到新的页面。
二、开发环境
Thttp服务器+arm开发板+linux系统
三、思路
(参考原文地址:)根据帖子里大牛们的讨论,得出以下解决思路:
1、 通过表单提交需要设置的信息给thttp服务器
2、 CGI程序提取相应的信息并修改对应的配置文件
3、 CGI程序返回“成功配置,等待跳转”的页面,并且设置页面延时4s之后跳转到新设置的IP地址发布的网页,CGI程序退出。
注意:此时设备的IP地址并没有发生改变,只是作为一个反馈,和跳转的设置。
跳转页面的代码:
其中, 即为新设置的IP地址上发布的网页
4、 后台运行的守护进程,每隔2s时间检查一次配置文件是否修改,若有修改则读取新写入的IP地址和子网掩码,然后修改系统的IP地址和子网掩码为对应值。
a) 守护进程完成一些初始化工作之后调用stat函数读取配置文件的最后修改时间
b) 守护进程运行一个while(1)循环
c) 休眠2s后,再次读取文件的最后修改时间值
d) 对前后两次读取的时间值做比较,若不一样,则说明配置文件内容有变化。做修改IP的操作,并且把原有的时间值替换成新的时间值。若一样则进行下一次循环。