1.用户自己源码安装的软件组要自启动,可以在/etc/rc.local中配置,rc.loacl 是rc.d/rc.local的一个软连接。rc.local -> rc.d/rc.local
- 用户的配置环境变量配置在/etc/profile下。
3.但是自启动rc.local先于/etc/profile被系统执行,有些软件找不到环境变量而无法执行。我们可以在rc.local中先调用/etc/profile,然后添加自己的自启动代码。
4.以tomcat为例, 首先在/etc/profile 中添加:
## ADD by icesongqiang for java jdk 16.12.28
JAVA_HOME=/usr/share/java; export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH; export PATH
CLASSPATH=$CLASSPATH:$JAVA_HOME/lib; export CLASSPATH
## ADD CATALINA_HOME for tomcat by icesonqiang 16.12.28
CATALINA_HOME=/usr/local/tomcat8;export CATALINA_HOME
## ADD by icesongqiang for maven 16.12.28
M2_HOME=/usr/local/apache-maven; export M2_HOME
PATH=$M2_HOME/bin:$PATH; export PATH
接着在/etc/rc.local中执行etc/profile, 并启动tomcat
## ADD by icesongqiang for java jdk 16.12.28
source etc/profile
## add tomcat
${CATALINA_HOME}/bin/startup.sh start
但是这样有一个弊端,就是用户没有登录也会看到环境变量中的值,而如果直接将/etc/profile中的环境变量语句拷贝到/etc/rc.loacl中,export语句会没有效果。也就是说执行了rc.local后,export的变量就无效了。
发现tomcat不能自动启动,后来发现是因为/etc/rc.d/rc.local 先于/etc/profile启动而我的环境变量是在profile里面设置的所以tomcat启动时找不到环境变量。后来修改了一下把环境变量添加到了startup.sh里面就ok了!
网友评论