openwrt luci开发及安装过程中的问题
1、缓存影响
luci会缓存用户访问的内容,有时用旧的控制语言去控制新开发的界面会出现错误,如果你开发或安装luci时遇到问题,先清除缓存
缓存目录/tmp/luci-modulecache,将目录下的文件全部删除
还有luci-indexcache文件
2、Luci控制文件的保存路径
/usr/lib/lua/luci
可以在此路径直接更改luci的文件,不用每次都编译、安装再测试
3、文件格式问题
最好用unix,其他格式如dos、UTF等可能会出现一些莫名其妙的问题,内容一样格式不同可能导致执行出错
在git中需设置“git config --global core.autocrlf false”,让Git不要管Windows/Unix换行符转换的事 ,不然上传的是unix,同步下载后又变成dos
4、交叉编译
编译ar71xx没问题,编译rammips时提示:
checking whether the C compiler works... no
configure: error: C compiler cannot create executables
解决:sudo apt-get install ccache
5、怎么将shell脚本或程序甩到后台执行
一些监控脚本或程序执行后不会退出,这时要把它甩到后台,否则在luci界面会一直显示正在应用配置。
有两种方法,一种是用service_start,此函数存在于/lib/functions/service.sh ,在shell脚本中前两行写上:
#!/bin/sh /etc/rc.common
SERVICE_DAEMONIZE=1
就可以调用此函数,如
#!/bin/sh /etc/rc.common
SERVICE_DAEMONIZE=1
service_start ssr-redir -c /var/etc/shadowsocksr.json
注意:引用了/etc/rc.common的脚本文件,对参数传递格式是“脚本名称 动作(start/stop/restart/reload/enable/disable) 参数列表”
比如有一个文件test.sh,内容为:
#!/bin/sh /etc/rc.common
echo $1_$2
执行
./test.sh 1 2 3
打印的是2_3,1被当成动作
另一种方法比较特别,用( .. &)来执行命令,比如
( ssr-monitor 2 &)
发表评论