溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何利用Jsvc把Java程序嵌入到Linux服務(wù)中去

發(fā)布時間:2021-07-15 15:01:12 來源:億速云 閱讀:140 作者:chen 欄目:系統(tǒng)運維

這篇文章主要講解了“如何利用Jsvc把Java程序嵌入到Linux服務(wù)中去”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“如何利用Jsvc把Java程序嵌入到Linux服務(wù)中去”吧!

在linux上以服務(wù)的方式啟動java程序

1.安裝jsvc

在tomcat的bin目錄下有一個jsvc.tar.gz的文件,進入tomcat的bin目錄下

#tar xvfz jsvc.tar.gz

#cd jsvc-src

#sh support/buildconf.sh

#chmod 755 configure

#./configure --with-java=/usr/local/java (改成你的JDK的位置)

#make


2.編寫服務(wù)啟動類

package com.sohu.jsvc.test;

public class TestJsvc {

public static void main(String args[]) {
System.out.println("execute main method!");
}

public void init() throws Exception {
System.out.println("execute init method!");
}

public void init(String[] args) throws Exception{
System.out.println("execute init(args) method");
}

public void start() throws Exception {
System.out.println("execute start method!");
}

public void stop() throws Exception {
System.out.println("execute stop method!");
}

public void destroy() throws Exception{
System.out.println("execute destroy method!");
}

}

main方法可以去掉,但是init(String[] args),start(),stop(),destroy()方法不能少,服務(wù)在啟 動時會先調(diào)用init(String[] args)方法

然后調(diào)用start()方法,在服務(wù)停止是會首先調(diào)用stop()方法,然后調(diào)用destroy() 方法.

3.把這個類打包成testjsvc.jar 放到/test目錄下

4.編寫啟動服務(wù)的腳本 myjsvc

#!/bin/sh

# myjsvc This shell script takes care of starting and stopping
#
# chkconfig: - 60 50
# description: tlstat stat is a stat data daemon.
# processname: myjsvc

# Source function library.
. /etc/rc.d/init.d/functions

RETVAL=0
prog="MYJSVC"

# jdk的安裝目錄
JAVA_HOME=/usr/java/jdk1.5.0_15
#應(yīng)用程序的目錄
MYJSVC_HOME=/test
#jsvc所在的目錄
DAEMON_HOME=/usr/local/tomcat5/bin/jsvc-src
#用戶
MYJSVC_USER=root

# for multi instances adapt those lines.
TMP_DIR=/var/tmp
PID_FILE=/var/run/tlstat.pid

#程序運行是所需的jar包,commons-daemon.jar是不能少的
CLASSPATH=\
/test/testjsvc.jar:\
/usr/local/tomcat5/bin/commons-daemon.jar:\

case "$1" in
start)
#
# Start TlStat Data Serivce
#
$DAEMON_HOME/jsvc \
-user $MYJSVC_USER \
-home $JAVA_HOME \
-Djava.io.tmpdir=$TMP_DIR \
-wait 10 \
-pidfile $PID_FILE \
#控制臺的輸出會寫到tlstat.out文件里
-outfile $MYJSVC_HOME/log/myjsvc.out \
-errfile '&1' \
-cp $CLASSPATH \
#服務(wù)啟動類
com.sohu.jsvc.test.TestJsvc 
#
# To get a verbose JVM
#-verbose \
# To get a debug of jsvc.
#-debug \
exit $?
;;

stop)
#
# Stop TlStat Data Serivce
#
$DAEMON_HOME/jsvc \
-stop \
-pidfile $PID_FILE \
com.sohu.jsvc.test.TestJsvc
exit $?
;;

*)
echo "Usage myjsvc start/stop"
exit 1;;
esac

5. 把myjsvc文件拷貝到/etc/init.d/目錄下

6. #chmod -c 777 /etc/init.d/myjsvc

7. 添加服務(wù)

#chkconfig --add myjsvc

#chkconfig --level 345 myjsvc on

8. 完成,啟動服務(wù)

#service myjsvc start

你可以從/test/log/myjsvc.out文件里看到如下信息:

execute init(args) method

execute start method

#service myjsvc stop

你會發(fā)現(xiàn)/test/log/myjsvc.out文件里會增加如下信息

execute stop method

execute destroy method

并且在系統(tǒng)重啟時會自動啟動myjsvc服務(wù)

好了,一個簡單的 liunx服務(wù)就寫好了,你可以在TestJsvc的init(),start(),stop(),destroy()方法里添加你的業(yè)務(wù),做你想做的事。

感謝各位的閱讀,以上就是“如何利用Jsvc把Java程序嵌入到Linux服務(wù)中去”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對如何利用Jsvc把Java程序嵌入到Linux服務(wù)中去這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI