使用Java Service Wrapper在Linux下配置Tomcat应用
前言
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应用的更多相关文章
- Linux下配置tomcat+apr+native应对高并发
摘要:在慢速网络上Tomcat线程数开到300以上的水平,不配APR,基本上300个线程狠快就会用满,以后的请求就只好等待.但是配上APR之后,Tomcat将以JNI的形式调用Apache HTTP服 ...
- linux下配置tomcat集群的负载均衡
linux下配置tomcat集群的负载均衡 一.首先了解下与集群相关的几个概念集群:集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台.在客户端看来,一个集群就象是一个服 ...
- (转)Linux下配置tomcat+apr+native应对高并发
摘要:在慢速网络上Tomcat线程数开到300以上的水平,不配APR,基本上300个线程狠快就会用满,以后的请求就只好等待.但是配上APR之后,Tomcat将以JNI的形式调用Apache HTTP服 ...
- Linux下配置Tomcat服务器
Linux下配置Tomcat服务器和Windows下其实差不多,可以去官网下载安装包释放或者在线下载,只是当时下载的windows.zip文件,现在下载.tar.gz格式的即可,下面使用命令行的方式安 ...
- linux下配置tomcat开机自启动
Linux下配置tomcat开机自启动 1.写一个tomcat脚本,内容如下,设置其权限为755,放在/etc/init.d/目录下 #!/bin/bash## /etc/init.d/tomca ...
- linux下配置Tomcat开机启动
我们在linux下安装好tomcat之后:经常是需要配置到开机启动的: 这样的话就不需要我们每次重启linux服务器之后自己在登陆运行startup.sh文件启动tomcat了 本次的演示环境是在ce ...
- Linux 下配置Tomcat的虚拟路径
如果你的Linux服务器下,不止一个tomcat的时候,这个时候,你就会发现,每次去发布项目很麻烦,还需要到webapps下面去看,繁琐的很,这里就用到了,Tomcat的虚拟路径,制定一个目录,作为t ...
- Linux下配置tomcat
我们可以在用户目录下新建一个tomcat目录 mkdir tomcat ls cd tomcat/ 使用wget命令下载tomcat的压缩包 wget https://downloads.apache ...
- linux下JDK,tomcat的安装与环境变量配置
先从网上下载jdk(jdk-1_5_0_02-linux-i586.rpm) ,下载后放在/home目录中,当然其它地方也行. 进入安装目录#cd /home#cp jdk-1_5_0_02-linu ...
随机推荐
- Javascript中的一种深复制实现
在javascript中,所有的object变量之间的赋值都是传地址的,可能有同学会问哪些是object对象.举例子来说明可能会比较好: typeof(true) //"boolean&qu ...
- 在mac系统上安装Eclipse,编写java程序
第一步:安装java jre(java 运行环境). 如图所示: 登陆Oralce官网,点击Download选项,找到如图所示界面: 选择Java Runtime Environment(JRE),打 ...
- js执行过程
正如我们了解的一样,当我们书写了JS程序之后,打开浏览器,我们的代码就可以开始运行了(当然保证你的代码没有问题,才能按照你的预期进行执行).刚才说的是JS执行的一个大的环境,今天我们学习一下,JS在解 ...
- C# winform combobox控件中子项加删除按钮(原创)
效果如下图,本人网上搜索资料加上自己的研究终于实现了在combobox子项中加上删除按钮. 一.窗体中的代码: using System; using System.Collections.Gener ...
- linux分区和文件系统
linux分区主分区:最多只能有4个扩展分区:最多只能有一个 主分区+扩展分区最多4个 扩展分区不能写入数据,只能包含逻辑分区 见图示:fq.png 主分区:总共最多只能分4个扩展分区:只能有1个,也 ...
- 使用DataGridView数据窗口控件,构建用户快速输入体验
在"随风飘散" 博客里面,介绍了一个不错的DataGridView数据窗口控件<DataGridView数据窗口控件开发方法及其源码提供下载>,这种控件在有些场合下,还 ...
- STM32F0xx_GPIO配置详细过程
前言 对于初学STM32的人来说,很多基础的知识没有掌握,这些基础知识就成为阻挡他们入门的门槛.因此,今天也把基础的知识分享出来,带领那些还没有迈过这个门槛的人入门. 今天总结“GPIO配置详细”,以 ...
- Python学习教程(learning Python)--2.3 Python自定义函数传参函数设计
Python里自定义子函数时,可以在调用时携带一些参数到子函数里去处理.具体用法结构如下: def func(arguments): statement statement etc. 定义子函数一定要 ...
- ruby 笔记
symbol 不能有- 'data-turbolinks-track' => true stop rails –s kill -INT $(cat tmp/pids/server.pid) cl ...
- ubuntun pptpd
apt-get install pptpd 3.编辑pptpd.conf文件 vi /etc/pptpd.conf 取消注释下面内容 option /etc/ppp/pptpd-options loc ...