诡异的问题:关于linux开机运行脚本的疑问
时间:2011-07-17
来源:互联网
刚移植了一下linux系统,基于友善之臂的s3c2440平台。先交代一下环境:
编译器:arm-linux-gcc 4.1.2(openmoko制作)
kernel:linux-2.6.32.43
busybox:BusyBox 1.18.5
内核和文件系统均正常启动,测试程序也正常运行。
由于新移植了tslib,所以想让系统开机自动设置环境变量,故写了一个脚本:
#vi setenv.sh
Perl code
并添加了可执行权限:
#chmod +x setenv.sh
经测试,执行source setenv.sh之后,环境变量生效。
[mxh2440]# echo $T_ROOT
/opt/tslib
好了,诡异的现象开始了。
我将这段脚本写入/etc/init.d/rcS中,
Perl code
reboot重启之后,查看echo $T_ROOT,居然没有生效。
于是我试着将
Perl code
直接加入到/etc/init.d/rcS中:
Perl code
再重启,发现涛声依旧。这是神马情况呢?大侠帮忙解惑!
编译器:arm-linux-gcc 4.1.2(openmoko制作)
kernel:linux-2.6.32.43
busybox:BusyBox 1.18.5
内核和文件系统均正常启动,测试程序也正常运行。
由于新移植了tslib,所以想让系统开机自动设置环境变量,故写了一个脚本:
#vi setenv.sh
Perl code
export T_ROOT=/opt/tslib export TSLIB_CONSOLEDEVICE=none export TSLIB_FBDEVICE=/dev/fb export TSLIB_TSDEVICE=/dev/input/event0 export TSLIB_PLUGINDIR=$T_ROOT/lib/ts export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf export TSLIB_CALIBFILE=opt/tslib/pointercal export LD_LIBRARY_PATH=$T_ROOT/lib:$LD_LIBRARY_PATH
并添加了可执行权限:
#chmod +x setenv.sh
经测试,执行source setenv.sh之后,环境变量生效。
[mxh2440]# echo $T_ROOT
/opt/tslib
好了,诡异的现象开始了。
我将这段脚本写入/etc/init.d/rcS中,
Perl code
#!/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin runlevel=S prevlevel=N umask 022 export PATH runlevel prevlevel # # Trap CTRL-C &c only in this shell so we can interrupt subprocesses. # /bin/mount -t proc none /proc /bin/mount -t tmpfs none /tmp /bin/mount -t tmpfs none /var /bin/mkdir -p /var/log /bin/hostname -F /etc/sysconfig/HOSTNAME [color=#FF0000]source /opt/setenv.sh [/color]
reboot重启之后,查看echo $T_ROOT,居然没有生效。
于是我试着将
Perl code
export T_ROOT=/opt/tslib export TSLIB_CONSOLEDEVICE=none export TSLIB_FBDEVICE=/dev/fb export TSLIB_TSDEVICE=/dev/input/event0 export TSLIB_PLUGINDIR=$T_ROOT/lib/ts export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf export TSLIB_CALIBFILE=opt/tslib/pointercal export LD_LIBRARY_PATH=$T_ROOT/lib:$LD_LIBRARY_PATH
直接加入到/etc/init.d/rcS中:
Perl code
#!/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin runlevel=S prevlevel=N umask 022 export PATH runlevel prevlevel [color=#FF0000] export T_ROOT=/opt/tslib export TSLIB_CONSOLEDEVICE=none export TSLIB_FBDEVICE=/dev/fb export TSLIB_TSDEVICE=/dev/input/event0 export TSLIB_PLUGINDIR=$T_ROOT/lib/ts export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf export TSLIB_CALIBFILE=opt/tslib/pointercal export LD_LIBRARY_PATH=$T_ROOT/lib:$LD_LIBRARY_PATH[/color] # # Trap CTRL-C &c only in this shell so we can interrupt subprocesses. # /bin/mount -t proc none /proc /bin/mount -t tmpfs none /tmp /bin/mount -t tmpfs none /var /bin/mkdir -p /var/log /bin/hostname -F /etc/sysconfig/HOSTNAME
再重启,发现涛声依旧。这是神马情况呢?大侠帮忙解惑!
作者: mxh20999 发布时间: 2011-07-17
本想在代码区加红色颜色区分,但是看看一楼,貌似不能加,还整错了。这里先修正一下。
也就是在/etc/init.d/rcS的最后一句我添加了:
source /opt/setenv.sh
发现不能正常实现开机自动执行。
但是我若在终端里手动执行source /opt/setenv.sh的时候,查看环境变量echo $T_ROOT是正常的。
也就是在/etc/init.d/rcS的最后一句我添加了:
source /opt/setenv.sh
发现不能正常实现开机自动执行。
但是我若在终端里手动执行source /opt/setenv.sh的时候,查看环境变量echo $T_ROOT是正常的。
作者: mxh20999 发布时间: 2011-07-17
顶一下先。
作者: mxh20999 发布时间: 2011-07-17
没讲述清楚?
作者: mxh20999 发布时间: 2011-07-17
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28