- 论坛徽章:
- 2
|
本帖最后由 剑心通明 于 2017-03-20 08:39 编辑
好久不玩BSD,也好久不来CU灌水了,这两天折腾了一下tomcat,一点小的经验教训给大家分享一下。
对FreeBSD的软件启动一直很满意,像apache、mysql什么的只要在rc.conf里面加入***_enable="YES"就可以了,这两天装了tomcat,习惯性的加入了tomcat8_enable="YES",发现不行,但是启动系统后可以service tomcat8 start启动,也可以/usr/local/apache-tomcat-8.0/bin/startup.sh启动。就在/etc/rc.lcoal里面直接写了service tomcat8 start,发现不行,改成/usr/local/apache-tomcat-8.0/bin/startup.sh也不行。
网上搜了半天,在yuhuohu的提醒下,自己写了个shell:
- #!/bin/sh
- export JAVA_HOME=/usr/local/openjdk8
- export CLASSPATH=$CLASSPATH:/usr/local/apache-tomcat-8.0/bin/bootstrap.jar:/usr/local/apache-tomcat-8.0/bin/tomcat-juli.jar
- export PATH=$PATH:$JAVA_HOME/bin
- export CATALINA_HOME=/usr/local/apache-tomcat-8.0
- /usr/local/apache-tomcat-8.0/bin/catalina.sh start
复制代码
加上x权限,然后在/etc/rc.local里面调用它,reboot,发现ok了。
总结一下,我认为是:java需要环境变量的支持,可能是因为开机的过程中一些环境变量未能满足,所以启动不了,用户登录之后环境变量已经好了,所以可以启动。把环境变量在shell中设置好,这样就没问题了。
本来到此就结束了,但还是觉得不对,rc.conf里面启动软件是bsd的设计,怎么可能tomcat不服管教哪?又打开/usr/local/etc/rc.d/tomcat8看了看,发现可以加很多启动选项,很多默认的就跟上面的shell一样,只有一个calsspath不一样:
# tomcat8_classpath (str):
# Set to "" by default.
# Addtional classes to add to the CLASSPATH. If set, must start with ':'
于是灵感来了:
在rc.conf里面加入:
tomcat8_classpath=":/usr/local/apache-tomcat-8.0/bin/bootstrap.jar:/usr/local/apache-tomcat-8.0/bin/tomcat-juli.jar"
tomcat8_enable="YES"
然后注释掉刚才加到rc.local里面的shell,重启,发现可以启动了!终于回归正途了,呵呵。
|
|