日期:2014-05-16  浏览次数:20664 次

Linux 添加java service
使用Java Service Wrapper将java程序作为linux服务并且开机自动启动
以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
      #wrapper.java.initmemory=3
        JVM启动时的初始内存大小,当前是3M,如果要自定义,将#去掉,设置自己的值即可。
      #wrapper.java.maxmemory=64
      JVM启动时的最大内存使用量,当前是64M,如果要自定义,将#去掉,设置自己的值即可。
      #这个就是你自己可执行程序的主类(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/QueueTes