概述
项目中用shell脚本启动了一个java daemon, 本想着在java代码中可以使用profile中定义的变量:CONF_DIR,却得到了个空。
挺奇怪,模糊记得父子进程间环境变量是继承的啊,按照这个逻辑:
linux profile —> shell —> java daemon 是父子的关系,profile中有的环境变量应该一层一层被传递到java daemon啊?
稍微查了下,发现认识上有问题,记录于下:
- 环境变量是可以继承的,但是不能隔代继承,就是说子进程只能继承父进程的环境变量。
- 什么是环境变量, local变量被export之后才是环境变量。 其实用另外一个角度理解:export的作用就是让local变量变得对子进程可见。
回到我的问题,要做的仅仅是在shell中,在启动java daemon之前执行
export ${CONF_DIR}
最后
以上就是感动身影为你收集整理的父子进程间,环境变量的继承的全部内容,希望文章能够帮你解决父子进程间,环境变量的继承所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复