Java Service Wrapper

项目需要把java的application打成jar包单独跑,在linux环境下

存在问题:部署上去之后,java -jar xxx.jar之后 ,因为用ssh进去的,所以这个窗口关掉之后,他的这个进程也就关掉了,这个是不能接收的

目标:开机自动启动,不用人为干预,是守护进程。普遍做法是写shell脚本,网上查了一些,推荐用Java Service Wrapper

优点:各个系统大部分都支持,可以做成服务,可以开机启动

下面说结合自身和网络说一下:

参考文章地址:http://blog.csdn.net/lyflower/article/details/6098025

下面在linux的/opt下建立tianlong目录,复制tianlong.jar到/home/cotton/applications/data_receive/lib目录下。

1、下载Java Service Wrapper(目前版本wrapper-linux-x86-64-3.5.26), 解压。
http://wrapper.tanukisoftware.org/
复制wrapper/src/bin/sh.script.in到/home/cotton/applications/data_receive/bin目录,重命名为DataReceive

复制wrapper/bin目录下的wrapper文件到/home/cotton/applications/data_receive/bin目录

复制wrapper/src/conf/wrapper.conf.in到/home/cotton/applications/data_receive/conf目录,重命名为wrapper.conf

复制wrapper/lib目录下3个文件到/home/cotton/applications/data_receive/lib目录

libwrapper.so
wrapper.jar
wrappertest.jar

2、修改/home/cotton/applications/data_receive/bin/DataReceive文件
APP_NAME="DataReceive" //注意这里,这里的应用服务名称应该与第1步的/home/cotton/applications/data_receive/bin里面的DataReceive名字相同
APP_LONG_NAME="DataReceive Application Server"
WRAPPER_CMD="./wrapper" //这里的路径要写正确,这里是对应了/home/cotton/applications/data_receive/bin/wrapper这个文件
WRAPPER_CONF="../conf/wrapper.conf" //这里的路径要写正确,这里是对应了/home/cotton/applications/data_receive/conf/wrapper.conf这个文件
赋予执行权限
chmod 775 /home/cotton/applications/data_receive/bin/DataReceive
chmod 775 /home/cotton/applications/data_receive/bin/wrapper

3、修改/home/cotton/applications/data_receive/conf/wrapper.conf文件
wrapper.java.command=/home/cotton/jdk1.7.0_71/bin/java //这里是写java的安装路径
使用WrapperStartStopApp,这样可以通过命令带start/stop来启动/停止程序。
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperStartStopApp
#这里添加你用到的jar包文件,从1..n你自己全写上吧,不过wrapper是必须的 ,我这里面就用到了classpath1和2
wrapper.java.classpath.1=../lib/wrapper.jar
wrapper.java.classpath.2=../lib/Data_receiver.jar //这里表示将打包好的tianlong.jar放在/home/cotton/applications/data_receive/lib这个文件夹中
wrapper.java.classpath.3=../lib/asterisk-java-0.3.jar
wrapper.java.classpath.4=../lib/mysql-connector-java-5.1.6-bin.jar
wrapper.java.classpath.5=/home/cotton/jdk1.7.0_71/lib/dt.jar
wrapper.java.classpath.6=/home/cotton/jdk1.7.0_71/lib/tools.jar
wrapper.java.classpath.7=../cofig.properties //这个是应用程序用到的配置文件。如果使用的应用程序需要用到配置,就需要把这个文件包含进来
wrapper.java.library.path.1=../lib //这里是表示wrapper使用到的jar包的路径,一般默认即可,绝对路径是:/home/cotton/applications/data_receive/lib
#这个就是你自己可执行程序的主类(MainClass),一般来说,就是包含public static void main的那个类
wrapper.app.parameter.1=MainMothed_Class
wrapper.app.parameter.2=1
wrapper.app.parameter.3=true
wrapper.app.parameter.4=MainMothed_Class
wrapper.app.parameter.5=true
wrapper.app.parameter.6=1
wrapper.app.parameter.7=stop

4、让DataReceive开机自动运行
ln -s /home/cotton/applications/data_receive/bin/DataReceive /etc/init.d/DataReceive
ln -s /home/cotton/applications/data_receive/bin/DataReceive /etc/rc0.d/DataReceive
ln -s /home/cotton/applications/data_receive/bin/DataReceive /etc/rc1.d/DataReceive
ln -s /home/cotton/applications/data_receive/bin/DataReceive /etc/rc2.d/DataReceive
ln -s /home/cotton/applications/data_receive/bin/DataReceive /etc/rc3.d/DataReceive
ln -s /home/cotton/applications/data_receive/bin/DataReceive /etc/rc4.d/DataReceive
ln -s /home/cotton/applications/data_receive/bin/DataReceive /etc/rc5.d/DataReceive
ln -s /home/cotton/applications/data_receive/bin/DataReceive /etc/rc6.d/DataReceive

5、测试 执行命令:service DataReceive start|stop|restart|status
程序运行时,Java Service Wrapper在/home/cotton/applications/data_receive/bin/目录下产生wrapper.log日志,
STATUS | wrapper| 2009/02/25 17:04:01 | --> Wrapper Started as Daemon
STATUS | wrapper| 2009/02/25 17:04:01 | Java Service Wrapper Community Edition 3.3.2
STATUS | wrapper| 2009/02/25 17:04:01 | Copyright (C) 1999-2009 Tanuki Software, Ltd.All Rights Reserved.
STATUS | wrapper| 2009/02/25 17:04:01 | http://wrapper.tanukisoftware.org
STATUS | wrapper| 2009/02/25 17:04:01 |
STATUS | wrapper| 2009/02/25 17:04:01 | Launching a JVM...
INFO | jvm 1 | 2009/02/25 17:04:02 | WrapperManager: Initializing...

出现上面这个就表示已经配置成功了。如果配置有错误的话,在wrapper.log里面会有提示。
同时,如果程序配置成功的并且启动的话,在/home/cotton/applications/data_receive/bin里面会有一个DataReceive.pid。

附目录结构
/home/cotton/applications/data_receive/

/home/cotton/applications/data_receive/bin
| DataReceive
| DataReceive.java.status(程序运行时自动产生)
| DataReceive.pid(程序运行时自动产生)
| DataReceive.status(程序运行时自动产生)
| wrapper
| wrapper.log(程序运行时自动产生)
/home/cotton/applications/data_receive/conf
| wrapper.conf
/home/cotton/applications/data_receive/lib
| libwrapper.so
| wrapper.jar
| Data_receiver.jar.jar
| wrappertest.jar

时间: 2024-10-07 23:58:17

Java Service Wrapper的相关文章

Java Service Wrapper配置详解

1 #encoding=UTF-8 2 # Configuration files must begin with a line specifying the encoding 3 # of the the file. 4 5 #******************************************************************** 6 # Wrapper License Properties (Ignored by Community Edition) 7 #*

Java Service Wrapper简介与使用

Wrapper可以将java application 编程一个系统服务器,非常好用! 之前有做过整理,但是公司上不了博客园,所以这边转下下做下记录! 1. 下载java service wrapper 网址:http://sourceforge.net/projects/wrapper/ 或者 http://wrapper.tanukisoftware.com/doc/english/download.jsp 我下载的版本是wrapper-windows-x86-32-3.5.20.zip. 2

java service wrapper日志参数设置及优化

一般在容器比如tomcat/weblogic中运行时,我们都是通过log4j控制日志输出的,因为我们现在很多服务端使用java service wrapper(至于为什么使用jsw,原先是比较排斥使用的,但是当一台服务器上部署10来个应用时,我们无条件的选择了jsw,因为不需要折腾和规划这么多的端口了,尤其是我们还是自己的RPC时,每个应用的端口需求从4个变成了1个)进行启动和管理,而JSW还有自己的日志格式,可以说在log4j上又套了一层马甲,默认的日志格式并不是输出原始log4j信息,因为我

Java Service Wrapper 发布Java程序为Windows服务

下载Windows版本:http://nchc.dl.sourceforge.net/sourceforge/wrapper/wrapper-windows-x86-32-3.2.3.zip 现在目前只要32位有免费的,64位免费版目前还没有做出来.官网上(社区)那一列是免费的. 1.先把你的项目用MANIFEST.MF打成jar包,例如bb.jar.新建目录,例如:dist,放在D盘下面.把bb.jar放到dist目录下. 2.在dist目录下新建conf,lib,log三个文件夹.conf是

详解Maven项目利用java service wrapper将Java程序生成Windows服务

在项目的开发中,有时候需要将Java应用程序打包成Windows服务,我们就直接可以通过windows的服务来启动和关闭java程序了. 本博文将通过有两种方法实现该功能,手动创建法和Maven自动打包法. 一. 准备 下载java service wrapper 网址:http://sourceforge.net/projects/wrapper/或http://wrapper.tanukisoftware.com/doc/english/download.jsp 我下载的版本是wrapper

使用Java Service Wrapper将jar包安装成Windows服务

在windows上运行jar包,需要在工作目录下使用命令行运行jar包,这样会出现一个命令行窗口.而且这个命令行窗口有可能会不小心被关闭,且服务器启动后需要人为去点击开启. 对于有些服务性的程序来说,我们需要将其部署为windows服务,在系统启动的时候自动启动. 前面我使用了yajsw来进行,请参考我的博文:http://www.cnblogs.com/kxxx/p/6744309.html 但本次在另外一台服务器上进行处理时,安装了服务之后不能打开,服务每次都报找不到指定文件的错误,试了很久

使用Java Service Wrapper在Linux下配置Tomcat应用

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

利用JAVA Service Wrapper把JAVA程序做成windows服务

今天复习了一下Java的基础知识,做了一个读取数据入库的程序.由于读取的数据每天都更新,于是就想把程序做成一个服务,每天定时执行.研究了一下,发现有几种方式可以做.下面我主要记录一下JAVA Service Wrapper方式.除此之外,我会把一些基本内容也贴上,以后复习所用. 一.下面是整个程序的功能部分: 1.连接数据库的功能.我写了一个DBConnecter类,是一个单例. public class DBConnecter { private static DBConnecter inst

使用java service wrapper将java程序注册为windows服务

转载自 http://blog.csdn.net/coolcoffee168/article/details/9980009 1. 下载java service wrapper 网址:http://sourceforge.net/projects/wrapper/ 或者 http://wrapper.tanukisoftware.com/doc/english/download.jsp 我下载的版本是wrapper-windows-x86-32-3.5.20.zip. 2. 配置过程 1)首先确