rc.local与环境变量的问题

原文地址:

http://blog.csdn.net/maomaovv/article/details/4533652

 

今天又遇到了同样的问题,决定把它记下来。


当服务器上安装了tomcat服务,通常我们希望系统启动的时候能够自动将tomcat启动起来,很自然我们就会想到rc.local,于是就这样做:

echo “/usr/local/bin/tomcat/bin/startup.sh” >> /etc/rc.d/rc.local

可是事实总是屡试都爽,证明这样是行不通的,每次重启服务器都不能自动重启tomcat服务

于是我们便在/usr/local/bin/tomcat/bin/startup.sh 后面加上 >>/tmp/startup.log

跟踪日志发现找不到环境变量JAVA_HOME,这是为什么呢?


rc.local is a file, owned by root.root and should be mode 755. The rc.local file is for initialization of programs after the system has fully booted. This script is run right before login prompts are displayed. You can use the file to run last minute startups, set certain environment variables, etc.


Conversely, if you want to start something before everything else, you would use the regular file in /etc/rc.d called rc.sysinit, which should have the same owner and permissions.


这说明rc.local运行在操作系统完全引导成功但是尚未启动login shell之前,所以我们配置在/etc/profiles或bashrc里的环境变量并未得到执行,因此在rc.local执行阶段看不到任何环境变量。


该问题的解决办法有两种:

1. 在rc.local中在startup命令之前加上export JAVA_HOME=***********

2. 可以在crontab中配置一个tomcat服务的监控脚本,1分钟探测一次tomcat是否正在运行,如果没有运行就启动一下tomcat

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值