freebsd开机启动tomcat8的方法

好久不玩bsd,最近装了个最新的11,装了tomcat8,习惯性的在rc.conf里面加入tomcat8_enable=”YES”,发现开机居然不能启动,开机后root登录service tomcat8 start是可以启动的,但是发现会有两个进程,一个是root的一个是www的。考虑到java需要环境变量的支持,可能是因为开机的过程中一些环境变量未能满足,所以启动不了,用户登录之后环境变量已经好了,所以可以启动。

因此把rc.conf里面的tomcat8_enable=”YES”注释掉,直接写个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

chmod +x之后,在/etc/rc.local里面引入该shell,开机就可以自动启动了,ok了。

找了半天,freebsd的资料太少了,所以实验了半天,感谢cu上的yuhuohu的提醒,cu太有爱了,呵呵。

本来到此就结束了,但还是觉得不对,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,重启,发现可以启动了!终于回归正途了,呵呵。

此条目发表在BSD分类目录,贴了标签。将固定链接加入收藏夹。