前言:任何事情都一样,原理弄清楚了,所有的问题将变得不再神秘。学计算机的人都知道,在任何同一时刻,计算机只能执行一条指令,而且都是顺序往下执行的(除非遇到跳转指令)。Linux的进程启动都是根据启动脚本里的指令进行的,主要有两类:init 和bash. init 是所有脚本的最顶端,首先被执行,而bash一般是登陆shell 的时候才会被调用。不同的文件系统具体的启动脚本文件名称是不一样的。以我使用的文件系统(yaffs)为例,/etc/init.d/rcS 作为init 的脚本,如果你想开机时进入自己的应用程序,则在rcS里面写入就可以。比如我想启动/usr/qtopia/chip 则在里面写入/usr/qtopia/chip –qws 就可以。/etc/init.d/profile 作为bash 的脚本 ,在这个脚本里的指令 开机时不会被执行,但是你进入shell 状态时,就会被调用,一般来说bash 脚本多数用来存放环境变量,记住,每一次进入shell 都会调用一次bash 脚本。来看看我分析一个例程,在/usr/qtopia 里有一个qt 程序,不采用自启动的方式,而是利用终端输入(进入终端就意味着进入shell)打开,这时候没问题,程序正常被打开,这说明里我的qt 库lib 的环境变量设置没问题。但是当我采用自启动的方式,即在/etc/init/rcS 里加入/usr/qtopia/chip –qws 时却提示 error while loading share qtlib.so.4 ````````为什么呢?原因是这样的:我的环境变量放在/etc/profile 而程序执行指令放在/etc/init.d/rcS ,这里就会出现一个问题,rcS 最先被执行 而profile 还没被执行,这样很明显找不到lib 了嘛,回头看终端输入启动,为什么就找到lib 呢 ?很简单,你打开终端时,bash 已经被调用。这样,执行的顺序变为首先执行/etc/profile 然后才执行你的指令。注:Ubuntu 系统的bash 脚本是 ~/.bashrc 或者 /etc/bashrc嵌入式Linux下的文本编辑让 ThunderBird 使用 Ubuntu 9.04 的新通知系统相关资讯 Linux知识
- 时光总是太匆匆!Linux已经诞生23 (08/29/2014 14:12:03)
- Linux虚拟文件系统之文件打开(sys (02/14/2012 11:41:54)
- 2012 年 Linux 峰会时间表 (02/14/2012 06:47:27)
| - 报告称当前 Linux 人才抢手 高薪也 (02/15/2012 06:35:56)
- 解析企业为何选择Linux及其特别之 (02/14/2012 08:17:59)
- Linux禁用字符闪烁的方法 (11/02/2011 10:28:25)
|
本文评论 查看全部评论 (0)