前言

Java Service Wrapper是Tanuki Software的一个产品,可以将Java应用注册成Windows或Linux服务,使其可以随系统开机启动,同时可以监控Java应用的状态,使其在出异常状况时自动启动,其具体特性请参考官方文档Overview of Wrapper features ,本文记录了笔者在官方文档指导下在Linux环境下用Java Serivice Wrapper配置Tomcat应用的实践。

前提

安装部署

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.=-Djava.util.logging.config.file=%CATALINA_HOME%/conf/logging.properties
wrapper.java.additional.=-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
wrapper.java.additional.=-Djava.endorsed.dirs=%CATALINA_HOME%/common/endorsed
wrapper.java.additional.=-Dcatalina.base=%CATALINA_BASE%
wrapper.java.additional.=-Dcatalina.home=%CATALINA_HOME%
wrapper.java.additional.=-Djava.io.tmpdir=%CATALINA_BASE%/temp //类路径。与获取JVM参数方式相同,将类路径逐条配置到下面
wrapper.java.classpath.=%CATALINA_HOME%/bin/bootstrap.jar
wrapper.java.classpath.=%CATALINA_HOME%/bin/tomcat-juli.jar
wrapper.java.classpath.=%CATALINA_HOME%/lib/wrapper.jar //lib路径。
wrapper.java.library.path.=%CATALINA_HOME%/lib //Wrapper集成主类。有4种集成方式,适合tomcat这样启动使用一个类,
//停止使用另一个类的应用的是WrapperStartStopApp类
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperStartStopApp //tomcat应用参数,无需修改
wrapper.app.parameter.=org.apache.catalina.startup.Bootstrap
wrapper.app.parameter.=
wrapper.app.parameter.=start
wrapper.app.parameter.=org.apache.catalina.startup.Bootstrap
wrapper.app.parameter.=TRUE
wrapper.app.parameter.=
wrapper.app.parameter.=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应用,证明应用正常启动。

使用Java Service Wrapper在Linux下配置Tomcat应用的更多相关文章

  1. Linux下配置tomcat+apr+native应对高并发

    摘要:在慢速网络上Tomcat线程数开到300以上的水平,不配APR,基本上300个线程狠快就会用满,以后的请求就只好等待.但是配上APR之后,Tomcat将以JNI的形式调用Apache HTTP服 ...

  2. linux下配置tomcat集群的负载均衡

    linux下配置tomcat集群的负载均衡 一.首先了解下与集群相关的几个概念集群:集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台.在客户端看来,一个集群就象是一个服 ...

  3. (转)Linux下配置tomcat+apr+native应对高并发

    摘要:在慢速网络上Tomcat线程数开到300以上的水平,不配APR,基本上300个线程狠快就会用满,以后的请求就只好等待.但是配上APR之后,Tomcat将以JNI的形式调用Apache HTTP服 ...

  4. Linux下配置Tomcat服务器

    Linux下配置Tomcat服务器和Windows下其实差不多,可以去官网下载安装包释放或者在线下载,只是当时下载的windows.zip文件,现在下载.tar.gz格式的即可,下面使用命令行的方式安 ...

  5. linux下配置tomcat开机自启动

    Linux下配置tomcat开机自启动   1.写一个tomcat脚本,内容如下,设置其权限为755,放在/etc/init.d/目录下 #!/bin/bash## /etc/init.d/tomca ...

  6. linux下配置Tomcat开机启动

    我们在linux下安装好tomcat之后:经常是需要配置到开机启动的: 这样的话就不需要我们每次重启linux服务器之后自己在登陆运行startup.sh文件启动tomcat了 本次的演示环境是在ce ...

  7. Linux 下配置Tomcat的虚拟路径

    如果你的Linux服务器下,不止一个tomcat的时候,这个时候,你就会发现,每次去发布项目很麻烦,还需要到webapps下面去看,繁琐的很,这里就用到了,Tomcat的虚拟路径,制定一个目录,作为t ...

  8. Linux下配置tomcat

    我们可以在用户目录下新建一个tomcat目录 mkdir tomcat ls cd tomcat/ 使用wget命令下载tomcat的压缩包 wget https://downloads.apache ...

  9. linux下JDK,tomcat的安装与环境变量配置

    先从网上下载jdk(jdk-1_5_0_02-linux-i586.rpm) ,下载后放在/home目录中,当然其它地方也行. 进入安装目录#cd /home#cp jdk-1_5_0_02-linu ...

随机推荐

  1. jQuery插件Skippr实现焦点图

    史上效果最好的焦点图幻灯片jQuery插件Skippr,轻量级插件.响应式布局插件,强大的参数自定义 配置,可自定义切换速度.切换方式.是否显示左右箭头.是否自动播放.自动播放间隔时间等配置 参数,调 ...

  2. Win 2003下IIS6+Mysql+php5.2  isapi搭建 升级php5.2到5.3测试 借助fastcgi实现

    Win 2003下IIS6+Mysql+php5.2  原环境isapi搭建 升级php5.2到5.3测试 借助fastcgi实现 操作如下 实验前准备:php-5.3.5-Win32-VC6-x86 ...

  3. Python生态环境简介[转]

    Python生态环境简介 作者: Mir Nazim 原文: Python Ecosystem - An Introduction 译者: dccrazyboy  原译: Python生态环境简介 当 ...

  4. 在Array原型链上扩展remove,contain等方法所遇到的坑

    相信jser兄弟们肯定会碰到这样一个问题, 在做数组类的操作的时候,会要求删除数组中的一个元素:亦或是判断某值是否存在于这个数组: OK,拿删除数组元素举例,扩展方法为: Array.prototyp ...

  5. WindowManager和WindowManager.LayoutParams的使用以及实现悬浮窗口的方法

    写Android程序的时候一般用WindowManager就是去获得屏幕的宽和高,来布局一些小的东西.基本上没有怎么看他的其他的接口. 这两天想写一个简单的类似于Toast的东西,自定义布局,突然发现 ...

  6. grunt初体验

    最近参与多人团队项目开发过程之中,使用到了grunt来构建项目,包括一些文件的压缩,合并等操作.亲自动手进行grunt任务的配置,学到了很多东西.现将自己的学习过程记录如下: 1.对于一个项目而言,使 ...

  7. 实战Django:官方实例Part3

    前面两个部分我们介绍了投票应用的框架和后台管理部分.接下来舍得要介绍这个应用面向用户的界面. 这里我们要引入一个新的概念,"视图".在Django中,视图是一根连接模型和模板的纽带 ...

  8. Collaborative filtering

        Collaborative filtering, 即协同过滤,是一种新颖的技术.最早于1989年就提出来了,直到21世纪才得到产业性的应用.应用上的代表在国外有Amazon.com,Last. ...

  9. python中的多继承

    python和C++一样,支持多继承.概念虽然容易,但是困难的工作是如果子类调用一个自身没有定义的属性,它是按照何种顺序去到父类寻找呢,尤其是众多父类中有多个都包含该同名属性. class P1 #( ...

  10. Android Cookie共享到WebView避免再次登录(保持登录状态)

    最近在做项目时用到了webview打开指定链接的网页,可已经把webview设置了cookie但始终跳转到登录页面,这明显是cookie没有设置成功导致webview没有将设置好的cookie发送出去 ...