java wrapper linux_Java Service Wrapper linux 服务 java 自启动
測試通過:
以java應用程序為例,打包為tianlong.jar,程序入口為tianlong.QueueTest。
在tianlong目錄下:
mkdir bin conf lib 創建3個目錄
在linux的/opt下建立tianlong目錄,復制tianlong.jar到/opt/tianlong/lib目錄下。
1、下載Java Service Wrapper(目前版本wrapper-linux-x86-32-3.3.2), 解壓。
http://wrapper.tanukisoftware.org/ 下載Community版本
解壓出來:
復制src\bin\sh.script.in到/opt/tianlong/bin目錄,重命名為QueueTest
復制bin目錄下的wrapper文件到/opt/tianlong/bin目錄
復制src\conf\wrapper.conf.in到/opt/tianlong/conf目錄,重命名為wrapper.conf
復制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/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.classpath.8=../????????????? //添加tianlong根目錄應用于非jar包在根目錄xx.class程序
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
# 設置log文件最大值
wrapper.logfile.maxsize=5
#設置log文件最多個數
wrapper.logfile.maxfiles=10
設置允許服務自動啟動? 針對win
wrapper.ntservice.starttype=AUTO_START
4、讓QueueTest開機自動運行方法1:
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
讓QueueTest開機自動運行方法2:(這里我用centos系統采用chkconfig方式管理)
vi bin/QueueTest?第二行開始增加
#kconfig: 3 98 15????? //必須
#description:Java Ds?? //必須
保存退出
ln -s /opt/tianlong/bin/QueueTest /etc/rc.d/init.d/QueueTest
chkconfig --add QueueTest
chkconfig --level 35 QueueTest on
5、測試 執行命令:service QueueTest start|stop|restart|status 程序運行時,
Java Service Wrapper在/opt/tianlong/bin/目錄下產生wrapper.log日志(日志路徑可在conf/wrapper.conf里修改)
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程序通用守護進程代碼:
#!/bin/sh
#-----------------------------------
# 函數: CheckProcess
# 功能: 檢查一個進程是否存在
# 參數: $1 --- 要檢查的進程名稱
# 返回: 如果存在返回0, 否則返回1.
#---------------------------------------
CheckProcess()
{
# 檢查輸入的參數是否有效
if [ "$1" = "" ];
then
echo "input empty"
return 1
fi
#$PROCESS_NUM獲取指定進程名的數目,為1返回0,表示正常,不為1返回1,表示有錯誤,需要重新啟動
sleep 3
PROCESS_NUM=`ps -ef | grep "$1" | grep -v "grep" | wc -l`
if [ $PROCESS_NUM -eq 1 ];
then
return 0
else
return 1
fi
}
# 檢查ds實例是否已經存在
while [ 1 ] ;
do CheckProcess "ds"
CheckQQ_RET=$?
if [ $CheckQQ_RET -eq 1 ];
then
sleep 10
# echo "ds need to restart"
killall 程序名字
路徑+程序名 &
fi
sleep 3
done &
在centos,fC4
ps -ef 無效改ps -e 好了
/etc/rc.local
nohup xxxx/check.sh &
不同用戶運行:
su - username -c "nohup xxxx/check.sh &"
sudo -u username xxxx/check.sh &?? // 如果不生效需修改visudo添加權限
總結
以上是生活随笔為你收集整理的java wrapper linux_Java Service Wrapper linux 服务 java 自启动的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021淘宝丑东西大赛入围商品出炉 第一
- 下一篇: akka linux 端口,Actor