rc.local 与 profile

sh/bash/dash/ksh/zsh等Shell脚本
回复
liangxgz
帖子: 13
注册时间: 2007-02-14 20:05

rc.local 与 profile

#1

帖子 liangxgz » 2008-01-17 0:14

这2个文件经常混淆我. 根据以往的经验.
rc.local是系统启动的时候会执行.profile用户登陆的时候执行.换句话说.如果系统如果没有用户登陆profile中的设置就不会生效.就算是用户登陆了.也只是影响到登陆用户的那个会话.而不会影响到系统的整个环境.

我的问题:
我在rc.local中设置了以下命令

代码: 全选

PATH=$PATH:/opt/java/jdk1.6.0_03/bin
JAVA_HOME=/opt/java/jdk1.6.0_03
export PATH
export JAVA_HOME
但是我在用户登陆的会话中并没有看到这些设置生效.
环境: ubuntu desktop 7.10
有人能介绍一些有关这方面的资源吗?或者解释一下这2个文件的启动顺序.

谢谢!
头像
madoldman
帖子: 599
注册时间: 2006-02-27 20:19
来自: works system
联系:

#2

帖子 madoldman » 2008-01-18 15:32

首先你应该弄清楚rc.local是干什么的,它不过是系统启动的时候自动运行的一个脚本而已
也就是说,和你手工运行一个脚本是没有什么区别的,那请问,如果你写如下一个shell:
PATH=$PATH:yourpath
export PATH
姑且命名为a.sh,然后用./a.sh,执行后你的PATH变了吗?
没有,因为在执行a.sh的时候,系统新开了一个进程,然后把PATH改掉了,然后这个进程
退出了。它的父进程,也就是执行这个脚本的终端进程的环境变量并没有修改。
那如何修改终端进程的环境变量呢?很简单source a.sh或者. a.sh注意,.和a.sh中间有一个空格
通过source命令,让a.sh在当前进程里执行,当前终端的PATH被改掉了。
写在profile或者写在bashrc里面的东西,在shell启动的时候就是以在当前进程中运行的这种方式加载
进来的。
东西路,南北走
十字路口人咬狗
拿起狗来打砖头
砖头咬了狗一口
图片
头像
madoldman
帖子: 599
注册时间: 2006-02-27 20:19
来自: works system
联系:

#3

帖子 madoldman » 2008-01-18 15:38

也就是说,子进程会继承父进程的环境变量,但是在子进程里做的修改,并不会影响到父进程。
东西路,南北走
十字路口人咬狗
拿起狗来打砖头
砖头咬了狗一口
图片
头像
Nile
帖子: 990
注册时间: 2006-07-15 11:20
来自: 枫叶刀市

#4

帖子 Nile » 2008-01-18 17:02

路过学习一下
Thinkpad T400
aBiNg
帖子: 1331
注册时间: 2006-07-09 12:22
来自: 南京

#5

帖子 aBiNg » 2008-01-18 18:15

疯老头,好久不见了哦。 :lol:
头像
madoldman
帖子: 599
注册时间: 2006-02-27 20:19
来自: works system
联系:

#6

帖子 madoldman » 2008-01-19 9:31

哦,楼上的认识我?嗯,忙了,没多少时间可以逛论坛了
东西路,南北走
十字路口人咬狗
拿起狗来打砖头
砖头咬了狗一口
图片
liangxgz
帖子: 13
注册时间: 2007-02-14 20:05

#7

帖子 liangxgz » 2008-01-19 11:39

明白了!
我之前看到profile里面的路径设置,以为照抄就可以.现在才明白我对rc.local的理解错误.
就是说,如果我有些守护进程要系统启动的时候运行.相关的环境参数直接在守护进程的启动script里面写就可以了不必要直接写在rc.local. 我的理解没错把!
头像
madoldman
帖子: 599
注册时间: 2006-02-27 20:19
来自: works system
联系:

#8

帖子 madoldman » 2008-01-19 15:38

如果只是某个守护进程要用的环境变量,当然直接写在这个进程的启动脚本里就可以了。而且环境变量写在rc.local里也没什么意义阿
东西路,南北走
十字路口人咬狗
拿起狗来打砖头
砖头咬了狗一口
图片
头像
Final_x
帖子: 383
注册时间: 2008-05-03 23:05
联系:

Re: rc.local 与 profile

#9

帖子 Final_x » 2009-04-27 10:53

路过``
刚好用到 :em05
一个不小心学习了下
回复