以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/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