以java应用程序为例,打包为tianlong.jar,程序入口为tianlong.QueueTest。

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

1、下载Java Service Wrapper(目前版本wrapper-linux-x86-32-3.3.2), 解压。 
http://wrapper.tanukisoftware.org/ 

复制src/bin/sh.script.in到/opt/tianlong/bin目录,重命名为QueueTest

复制wrapper/bin目录下的wrapper文件到/opt/tianlong/bin目录 

复制src/conf/wrapper.conf.in到/opt/tianlong/conf目录,重命名为wrapper.conf 

复制src/lib/lib目录下3个文件到/opt/tianlong/lib目录 

wrapper.so 
wrapper.jar 
wrappertest.jar

2、修改/opt/tianlong/bin/QueueTest文件 

APP_NAME="QueueTest" //注意这里,这里的应用服务名称应该与第1步的/opt/tianlong/bin里面的QueueTest名字相同

APP_LONG_NAME="QueueTest Application Server" 

WRAPPER_CMD="./wrapper" //这里的路径要写正确,这里是对应了/opt/tianlong/bin/wrapper这个文件

WRAPPER_CONF="../conf/wrapper.conf" //这里的路径要写正确,这里是对应了/opt/tianlong/conf/wrapper.conf这个文件

赋予执行权限 

chmod 775 /opt/testapp/bin/SocketServer 

chmod 775 /opt/testapp/bin/wrapper 

3、修改/opt/tianlong/conf/wrapper.conf文件 
wrapper.java.command=/usr/java/jdk1.6.0_07/bin/java   //这里是写java的安装路径

使用WrapperStartStopApp,这样可以通过命令带start/stop来启动/停止程序。
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperStartStopApp 

#这里添加你用到的jar包文件,从1..n你自己全写上吧,不过wrapper是必须的 

wrapper.java.classpath.1=../lib/wrapper.jar

wrapper.java.classpath.2=../lib/tianlong.jar     //这里表示将打包好的tianlong.jar放在/opt/tianlong/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=/usr/java/jdk1.6.0_07/lib/dt.jar

wrapper.java.classpath.6=/usr/java/jdk1.6.0_07/lib/tools.jar
wrapper.java.classpath.7=../cofig.properties   //这个是应用程序用到的配置文件。如果使用的应用程序需要用到配置,就需要把这个文件包含进来

wrapper.java.library.path.1=../lib   //这里是表示wrapper使用到的jar包的路径,一般默认即可,绝对路径是:/opt/tianlong/lib

#这个就是你自己可执行程序的主类(MainClass),一般来说,就是包含public static void main的那个类 
wrapper.app.parameter.1=tianlong.QueueTest

wrapper.app.parameter.2=1 

wrapper.app.parameter.3=true 

wrapper.app.parameter.4=tianlong.QueueTest

wrapper.app.parameter.5=true 

wrapper.app.parameter.6=1 

wrapper.app.parameter.7=stop 

4、让QueueTest开机自动运行 

ln -s /opt/tianlong/bin/QueueTest  /etc/init.d/QueueTest  

ln -s /opt/tianlong/bin/QueueTest /etc/rc0.d/QueueTest  

ln -s /opt/tianlong/bin/QueueTest /etc/rc1.d/QueueTest  

ln -s /opt/tianlong/bin/QueueTest /etc/rc2.d/QueueTest  

ln -s /opt/tianlong/bin/QueueTest /etc/rc3.d/QueueTest  

ln -s /opt/tianlong/bin/QueueTest /etc/rc4.d/QueueTest  

ln -s /opt/tianlong/bin/QueueTest /etc/rc5.d/QueueTest  

ln -s /opt/tianlong/bin/QueueTest /etc/rc6.d/QueueTest 

5、测试 执行命令:service QueueTest start|stop|restart|status 

程序运行时,Java Service Wrapper在/opt/tianlong/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里面会有提示。

同时,如果程序配置成功的并且启动的话,在/opt/tianlong/bin里面会有一个QueueTest.pid。

附目录结构

/opt/tianlong/

    cofig.properties

/opt/tianlong/bin

                 | QueueTest

                 | wrapper

                 | wrapper.log(程序运行时自动产生)

/opt/tianlong/conf

                | wrapper.conf

/opt/tianlong/lib

                | libwrapper.so

                | wrapper.jar

                | tianlong.jar

                | mysql-connector-java-5.1.6-bin.jar

                | asterisk-java-0.3.jar

使用Java Service Wrapper将java程序作为linux服务并且开机自动启动的更多相关文章

  1. 树莓派上Java程序作为linux服务并开机自动启动

    http://www.iigrowing.cn/shu_mei_pai_shang_java_cheng_xu_zuo_wei_linux_fu_wu_bing_kai_ji_zi_dong_qi_d ...

  2. Java程序作linux服务并且开机自动启动[转]

    以有个java应用名称为test,打包为test.jar,程序入口为cn.com.ppnote.SocketServer. 下面在linux的/opt下建立testapp目录,复制test.jar到/ ...

  3. java service wrapper将java程序包装成系统服务(一)

    一. 概述 使用java语言开发应用程序,在windows平台下,一般存在3种应用形式: 1. web应用.web应用多数打成war包在web容器(如tomcat,jetty等)中运行. 2. 桌面应 ...

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

    今天做了一个读取数据入库的程序.由于读取的数据每天都更新,于是就想把程序做成一个服务,每天定时执行.研究了一下,发现有几种方式可以做.下面我主要记录一下JAVA Service Wrapper方式. ...

  5. Java Service Wrapper将java程序设置为服务

    有时候我们希望我们java写的程序作为服务注册到系统中,Java Service Wrapper(下面简称wrapper)是目前较为流行的将Java程序部署成Windows服务的解决方案, 本文将讨论 ...

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

    下载Windows版本:https://www.krenger.ch/blog/java-service-wrapper-3-5-37-for-windows-x64/ 转自:F:\java\bhGe ...

  7. 使用java service wrapper将java程序注册为window服务

    1.下载java service wrapper 下载地址:http://wrapper.tanukisoftware.com/doc/english/download.jsp 针对自己的需求下载相应 ...

  8. Java Service Wrapper 发布Java程序或者jar包为Windows服务

    下载Windows版本:http://nchc.dl.sourceforge.net/sourceforge/wrapper/wrapper-windows-x86-32-3.2.3.zip 现在目前 ...

  9. 使用 Java Service Wrapper 启动java后台进程服务

    Java Service Wrapper (http://wrapper.tanukisoftware.com/doc/english/product-overview.html)可以很方便得在各个平 ...

随机推荐

  1. Socket 长连接与短连接,心跳

    长连接与短连接 所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持. 短连接是指通信双方有数据交互时 ...

  2. mysql数据库各存储引擎比較

    mysql数据库差别于其它数据库的最重要的一个特点是其插件式的表存储引擎,存储引擎是基于表的.而不是数据库 InnoDB存储引擎:        支持事务,其设计目标主要面向在线事务处理(OLTP)的 ...

  3. 任哲<<μC/OS>>

    从第二章开始啦: 程序控制块(TCB)  重要概念  相当于对应程序块的学生证,学号,,, 上面的图是一个简单的程序控制块,还会有复杂的程序控制块,也许是嵌套的两级的: 链表就相当于老师手中的花名册, ...

  4. 22、DMA驱动程序框架

    一.使用DMA的优点及DMA支持的请求源(请求源是启动DMA传输的事件,可以认为是触发.它可以是软件,也可以是中断,或者外部事件) 1.DMA优点是其进行数据传输时不需要CPU的干涉,可以大大提高CP ...

  5. MFC屏蔽 WindowS按键

    LRESULT CALLBACK LowLevelKeyboardPorc(int nCode,WPARAM wParam,LPARAM lParam)//屏蔽按键的真正实现方法{ BOOL fEat ...

  6. 【rlz03】十六进制转十进制

    Time Limit: 3 second Memory Limit: 2 MB 问题描述 输入一个十六进制数,编程转换为十进制数. 整数部分不会超过65535,十六进制的小数部分不会超过2位. Sam ...

  7. 【35.37%】【codeforces 556C】Case of Matryoshkas

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  8. iOS开发Quartz2D 十三:画板涂鸦

    一:效果如图: 二:代码 #import "ViewController.h" #import "DrawView.h" #import "Handl ...

  9. hash_map原理及C++实现

    一.数据结构:hash_map原理  hash_map基于hash table(哈希表).哈希表最大的长处,就是把数据的存储和查找消耗的时间大大减少,差点儿能够看成是常数时间:而代价不过消耗比較多的内 ...

  10. 修改QList中的item(使用下标([index])才可以获得可修改的item的引用)

    QList算是最常用的集合了,今儿偶然间需要修改QList中的值,结果郁闷了.QList中提供了replace函数来替换item,但不是修改.而at().value()操作均返回的是const的ite ...