解决linux中zookeeper,tomcat等依赖jdk的程序自启动失败问题

问题现象:
在etc/rc.local中配置了如下命令:
/home/hadoop/zookeeper/bin/zkServer.sh start &
/run/ayena/solr/tomcat/bin/startup.sh &
系统启动后用jps查看进程,发现zookeeper和tomcat均未启动。

原因:
配置java环境变量时,将JAVA_HOME配置在了etc/profile中。etc/profile中的环境变量只有登录后才会加载,非登录shell中是不会加载的。所以登录后手动启动可以,在rc.local中配置自启动不行。

解决办法(三选一):
1、在程序启动脚本中添加source /etc/profile
2、把etc/profile的信息添加到~/.bashrc中
3、在/zookeeper/bin/zkEnv.sh的中开始位置添加 export JAVA_HOME=/usr/local/jdk1.7.0_45

扩展阅读:
在linux中交互式shell和非交互式shell、登录shell和非登录shell是有区别的
在登录shell里,环境信息需要读取/etc/profile和~ /.bash_profile,~/.bash_login,~/.profile按顺序最先的一个,并执行其中的命令,除非被 --noprofile选项禁止了;在非登录shell里,环境信息只读取 /etc/bash.bashrc和~/.bashrc
手工执行是属于登陆shell,脚本执行数据非登陆shell

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值