linux开机启动c程序,[转载]Linux 开机自启动应用程序(进程)

前言:任何事情都一样,原理弄清楚了,所有的问题将变得不再神秘。

学计算机的人都知道,在任何同一时刻,计算机只能执行一条指令,而且都是顺序往下执行的(除非遇到跳转指令)。

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值