前言
Java Service Wrapper是Tanuki Software的一个产品,可以将Java应用注册成Windows或Linux服务,使其可以随系统开机启动,同时可以监控Java应用的状态,使其在出异常状况时自动启动,其具体特性请参考官方文档Overview of Wrapper features ,本文记录了笔者在官方文档指导下在Linux环境下用Java Serivice Wrapper配置Tomcat应用的实践。
前提
Suse Linux 64位
Tomcat 8 Download
Java Service Wrapper Linux 64bit Download
安装部署
Java安装到/usr/local/java8/ 具体步骤略
Tomcat安装到/usr/local/tomcat/ 具体步骤略
将Java Web应用打成war包,拖到tomcat/webapps/下 具体步骤略
解压缩Java Service Wrapper压缩包到/usr/local/wrapper/,开始安装wrapper文件:
bin目录
复制以下文件到tomcat/bin目录:
/usr/local/wrapper/bin/wrapper/usr/local/wrapper/src/bin/sh.script.in
脚本文件sh.script.in重命名为你的应用名,如ABC。
用编辑器打开ABC,找到APP_NAME,将值改成与文件名一致,APP_LONG_NAME的值改为应用长名。
APP_NAME="ABC"APP_LONG_NAME="ABC Application Server"
保存关闭文件,给脚本文件ABC授执行权限
lib目录
复制以下文件到tomcat/lib目录:
/usr/local/wrapper/lib/libwrapper.so/usr/local/wrapper/lib/wrapper.jar
conf目录
复制wrapper.conf到tomcat/conf目录,编辑wrapper.conf文件:
//配置java路径,根据具体环境配置,可以用绝对路径,也可以使用环境变量
set.JAVA_HOME=/usr/local/java8/set.CATALINA_HOME=/usr/local/tomcat
set.CATALINA_BASE=/usr/local/tomcat
wrapper.java.command=/usr/local/java8/bin/java//JVM参数。将应用正常启动时所配置的参数复制过来。具体步骤://1.命令行启动应用//2.用ps –ef | grep tomcat找到应用进程//3.复制该进程的参数,将-D开头的参数逐条配置到下面
wrapper.java.additional.1=-Djava.util.logging.config.file=%CATALINA_HOME%/conf/logging.properties
wrapper.java.additional.2=-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
wrapper.java.additional.3=-Djava.endorsed.dirs=%CATALINA_HOME%/common/endorsed
wrapper.java.additional.4=-Dcatalina.base=%CATALINA_BASE%wrapper.java.additional.5=-Dcatalina.home=%CATALINA_HOME%wrapper.java.additional.6=-Djava.io.tmpdir=%CATALINA_BASE%/temp//类路径。与获取JVM参数方式相同,将类路径逐条配置到下面
wrapper.java.classpath.1=%CATALINA_HOME%/bin/bootstrap.jar
wrapper.java.classpath.2=%CATALINA_HOME%/bin/tomcat-juli.jar
wrapper.java.classpath.3=%CATALINA_HOME%/lib/wrapper.jar//lib路径。
wrapper.java.library.path.1=%CATALINA_HOME%/lib//Wrapper集成主类。有4种集成方式,适合tomcat这样启动使用一个类,//停止使用另一个类的应用的是WrapperStartStopApp类
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperStartStopApp//tomcat应用参数,无需修改
wrapper.app.parameter.1=org.apache.catalina.startup.Bootstrap
wrapper.app.parameter.2=1wrapper.app.parameter.3=start
wrapper.app.parameter.4=org.apache.catalina.startup.Bootstrap
wrapper.app.parameter.5=TRUE
wrapper.app.parameter.6=1wrapper.app.parameter.7=stop
安装服务
进入/usr/local/tomcat/bin/目录,修改脚本文件ABC,设置随系统启动
//设置服务随系统启动
USE_UPSTART=true
保存退出,以root权限执行
$ sudo ./ABC install
应用将注册为upstart服务
Notice: 只对Wrapper 版本3.4.0之后有效
测试
执行命令
service start | stop | restart | status
之后到tomcat/logs/目录下查看wrapper.log,没有异常就是成功。
重启机器,登录后查看进程里有ABC在运行,证明随系统启动正常,或者访问Java Web应用,证明应用正常启动。