利用Jsvc把Java程序嵌入到Linux服务中去
在linux上以服务的方式启动java程序
' j. N9 S' W ]; g; Y# Zwww.520diannao.com
# o v4 z& Q1 P我爱电脑技术论坛我爱电脑技术论坛: p# V2 \" C$ G8 U
1.安装jsvc
& V1 U- [4 O' L6 s我爱电脑技术论坛
; B) q( [0 }% f# C& _! U. {- }# awww.520diannao.com在tomcat的bin目录下有一个jsvc.tar.gz的文件,进入tomcat的bin目录下
" s* ~' M; n$ k1 m我爱电脑技术社区--打造最好的电脑技术自学交流平台我爱电脑技术论坛- L1 j4 E( O/ N0 g( P
#tar xvfz jsvc.tar.gz
% o( ~! F3 n/ R2 T电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站# ~- Q& \ q% @$ y. @5 @
#cd jsvc-src 我爱电脑技术论坛# ]. P) B* B( f$ U' r, ^
打造最好的电脑自学交流论坛& x3 w$ W. p: g1 @: K6 S j. Z; w
#sh support/buildconf.sh
) c& k9 |7 |1 Z9 Q
# w6 G) V6 R; O3 R+ T8 L2 U* Z打造最好的电脑自学交流论坛#chmod 755 configure
) x& Q: C( t5 R, f6 v' v7 W* A打造最好的电脑自学交流论坛我爱电脑技术论坛1 d; V e8 s# e2 s! d- @
#./configure --with-java=/usr/local/java (改成你的JDK的位置)
9 X/ w' X- h, O' `2 S: Jwww.520diannao.com我爱电脑技术论坛$ ~) R% @: E9 ~: v3 d- I& I* s
#make www.520diannao.com" @. @$ I( h+ K9 |3 C1 V: K% C
( ^$ R, b# m9 {$ h9 w2 X" k打造最好的电脑自学交流论坛
$ ]- h4 ^2 Z/ X8 K/ j d- E8 T9 f电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站2.编写服务启动类
7 ~9 t4 Q0 N# @5 v, ~$ K我爱电脑技术社区--打造最好的电脑技术自学交流平台
8 U" `; n6 ~% m7 R2 X/ F9 b打造最好的电脑自学交流论坛www.520diannao.com% j5 X8 n- x4 s3 E8 M( k
我爱电脑技术论坛: K6 N1 r6 F( ^! q
package com.sohu.jsvc.test;
: a7 i' M. P7 T! W a9 \我爱电脑技术社区--打造最好的电脑技术自学交流平台www.520diannao.com/ Q( q2 }0 U& A3 P! q. e
public class TestJsvc {$ T$ N' g+ i) M! t9 h( P
: ` `+ u8 M8 h# g$ C% \电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站public static void main(String args[]) {
% C) E% e- I) v5 F% T6 c我爱电脑技术社区--打造最好的电脑技术自学交流平台System.out.println("execute main method!");我爱电脑技术社区--打造最好的电脑技术自学交流平台: o6 L+ {% S: R: P; d. _
}
; Z$ {. Q/ R9 ~ g( K, I
& r. l$ l; \; R( n2 S+ _7 \我爱电脑技术论坛public void init() throws Exception {
1 G+ B/ c: L: ^我爱电脑技术论坛System.out.println("execute init method!");
; D. p5 u- C# e' l" U4 y电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站}打造最好的电脑自学交流论坛: X- `: R8 r+ x( Q1 [
www.520diannao.com8 G( E8 V0 Y J
public void init(String[] args) throws Exception{我爱电脑技术社区--打造最好的电脑技术自学交流平台9 l* W5 I+ }. A* q' ^ j/ q
System.out.println("execute init(args) method");
( I. y4 @+ t; g; u6 Q+ }- \0 J4 ]}我爱电脑技术社区--打造最好的电脑技术自学交流平台- O7 z0 ~ J( i7 I0 J8 E7 {# g/ t2 Z
- y- W# ]3 j/ m我爱电脑技术论坛public void start() throws Exception {我爱电脑技术论坛. U/ P* } d& z( w' t& t- U
System.out.println("execute start method!");
2 K: ^4 t9 Y+ I9 z电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站}我爱电脑技术社区--打造最好的电脑技术自学交流平台) V2 `% F: d1 R o2 \/ D0 M
e @' u2 F0 L. F W3 ? ^0 u' v
public void stop() throws Exception {
+ _$ F) {+ h6 f' z. z打造最好的电脑自学交流论坛System.out.println("execute stop method!");
{ L' a5 b- y7 G; Z& L" X}
% \% [4 ~; x; g$ D打造最好的电脑自学交流论坛我爱电脑技术社区--打造最好的电脑技术自学交流平台 u( x2 I7 k: }
public void destroy() throws Exception{我爱电脑技术社区--打造最好的电脑技术自学交流平台7 C+ v# E/ E. d
System.out.println("execute destroy method!");www.520diannao.com2 s2 G% u) U% }( Q/ k1 ~2 S. q
}8 W" I' T2 l- z2 q% p6 I
电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站/ ]! V8 Y: Q( p9 i2 x0 Y& ^
}我爱电脑技术社区--打造最好的电脑技术自学交流平台 d. B/ _1 L, x3 a3 J6 N
www.520diannao.com! u, [1 A4 X& \
www.520diannao.com1 S; o6 H2 s& ? ]) R% ]% Z
8 T0 `+ [( C7 p/ c0 B$ e1 A) m电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站main方法可以去掉,但是init(String[] args),start(),stop(),destroy()方法不能少,服务在启动时会先调用init(String[] args)方法
% ^$ P- d+ {) Z
+ y2 ]/ ?2 I: h! y9 z9 U! l8 ~打造最好的电脑自学交流论坛然后调用start()方法,在服务停止是会首先调用stop()方法,然后调用destroy() 方法. 我爱电脑技术论坛$ K+ p. Y" K2 }' d2 a
& x2 r1 R1 ~9 n, o& N电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站
+ C, @# }' H/ ^/ Awww.520diannao.com3.把这个类打包成testjsvc.jar 放到/test目录下 www.520diannao.com0 G. Z9 H* l3 l. {5 m- I" p/ [
. p6 Y+ X: q; M* F
* O: X. r0 P2 a/ a4 u4.编写启动服务的脚本 myjsvc
# [; A5 L+ a9 p8 n& x. I+ i; ?www.520diannao.com
/ s' E4 x* a C# a我爱电脑技术论坛: r2 }" g1 {6 @3 ]
) \; G: N( t- @我爱电脑技术社区--打造最好的电脑技术自学交流平台#!/bin/sh
/ F+ c: S0 A8 r- C2 K6 F7 Bwww.520diannao.com打造最好的电脑自学交流论坛7 J) k% D: }: v# m* L, h
# myjsvc This shell script takes care of starting and stopping打造最好的电脑自学交流论坛; F8 L6 H2 s0 f* c5 {2 Z$ P$ t5 o) ]- ~
#我爱电脑技术社区--打造最好的电脑技术自学交流平台0 q& C5 {4 x0 c) J8 @
# chkconfig: - 60 50
! d9 v+ B+ z) ^9 W7 |6 O( {# description: tlstat stat is a stat data daemon.
$ J- z2 o$ h1 L# d5 ~/ B+ R% I" M我爱电脑技术论坛# processname: myjsvc
! o- f8 y" j" t我爱电脑技术论坛电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站+ d" q. c9 K3 @5 W1 E
# Source function library.我爱电脑技术社区--打造最好的电脑技术自学交流平台! |8 [; \4 X0 H! Q( M0 b
. /etc/rc.d/init.d/functions% o& Y5 N q7 }& @) R
电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站' T% f5 g% [# G1 w" Y& T& E3 F
RETVAL=0
% X6 l, O' [! D; V) Vprog="MYJSVC"% x7 A$ w4 [* R+ k# b1 _
电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站8 U4 x5 d3 e6 e9 H/ |
# jdk的安装目录电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站' M' X2 A4 _6 i' B5 {
JAVA_HOME=/usr/java/jdk1.5.0_15
5 R1 H ?# g" v, Nwww.520diannao.com#应用程序的目录
+ q! Q$ _( T$ ?/ \' z( E$ t0 }打造最好的电脑自学交流论坛MYJSVC_HOME=/test
6 s# Y/ C; B7 D1 c9 Y#jsvc所在的目录电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站6 n- m `" v7 K1 Z
DAEMON_HOME=/usr/local/tomcat5/bin/jsvc-srcwww.520diannao.com, Y% Q0 J+ B; y7 l$ t4 a
#用户
3 Q! R" w \& d/ p$ c我爱电脑技术论坛MYJSVC_USER=root电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站6 ~% Z6 z# I8 d& Y+ b( G
www.520diannao.com2 M9 t5 a* ?* W& P( J% _: O
# for multi instances adapt those lines.www.520diannao.com( R8 W+ ^+ R( s. }
TMP_DIR=/var/tmp
4 Z. c A4 D+ V( b5 ^电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站PID_FILE=/var/run/tlstat.pid
4 D* g3 T9 B& ]+ L! r电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站
. O' O- a' C4 }4 t _我爱电脑技术论坛#程序运行是所需的jar包,commons-daemon.jar是不能少的
8 w2 ^9 A1 J, y5 G' C我爱电脑技术社区--打造最好的电脑技术自学交流平台CLASSPATH=\
0 ]' ~# H' ]/ K% p% X2 |9 @打造最好的电脑自学交流论坛/test/testjsvc.jar:\
y4 n" b$ k' ?7 F; A) x$ h我爱电脑技术社区--打造最好的电脑技术自学交流平台/usr/local/tomcat5/bin/commons-daemon.jar:\
4 I+ Z/ I$ h- S+ }5 L, E3 E# v) A
- ?, {' L* q4 F- m1 @我爱电脑技术社区--打造最好的电脑技术自学交流平台case "$1" in) f+ x, D1 \7 G" s; t) `( O
start)打造最好的电脑自学交流论坛8 R& C+ E+ r# k. w/ R( s' w/ ]8 X
#
8 k1 D: V& W& P5 p# Start TlStat Data Serivce
1 o" ~! @4 ^( H- z. K0 F#打造最好的电脑自学交流论坛% ]! \' w; p0 G1 G. H$ p
$DAEMON_HOME/jsvc \$ V) ?& t5 L6 ?: r
-user $MYJSVC_USER \
) N/ I- i3 C& h5 t-home $JAVA_HOME \
5 j9 V# j3 K! ^9 K$ G g8 }我爱电脑技术社区--打造最好的电脑技术自学交流平台-Djava.io.tmpdir=$TMP_DIR \
/ e% B. Q r1 h, J% L1 S# {打造最好的电脑自学交流论坛-wait 10 \
. ]% H: H0 ~' A6 S" G0 k& ~-pidfile $PID_FILE \我爱电脑技术论坛3 ]8 O5 q# G {
#控制台的输出会写到tlstat.out文件里
/ p# u" E& Q* _7 a我爱电脑技术论坛-outfile $MYJSVC_HOME/log/myjsvc.out \
D" b6 E4 ]- \-errfile '&1' \我爱电脑技术社区--打造最好的电脑技术自学交流平台8 e8 D3 {" D3 Z& f- e# L
-cp $CLASSPATH \www.520diannao.com$ e A; H6 c& W8 ?4 b! n
#服务启动类打造最好的电脑自学交流论坛: Z( d, j) X9 ^( z% k1 ~: V
com.sohu.jsvc.test.TestJsvc
- P% G* H, U: ^3 K! k" c3 N% }- Qwww.520diannao.com#! C. c3 K2 v6 f5 g, [( _ e
# To get a verbose JVM我爱电脑技术论坛/ T/ B+ M( x f
#-verbose \打造最好的电脑自学交流论坛 V$ w4 _" f1 \, h
# To get a debug of jsvc.我爱电脑技术论坛( k! B# g" i+ l) J
#-debug \
$ e e- v2 K) U+ e0 y我爱电脑技术社区--打造最好的电脑技术自学交流平台exit $?
( G; k2 m$ j8 \) Qwww.520diannao.com;;电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站1 |7 _' o. U" Y8 }+ M2 Z; {
我爱电脑技术论坛3 a4 D! f4 `3 B$ Z
stop)
5 f! ]" Z( S r. l# c% s4 j#
! y! W* z6 V# F- B打造最好的电脑自学交流论坛# Stop TlStat Data Serivce我爱电脑技术论坛' f1 M3 D* U& q0 { l
#
' p- j% [! f1 b o我爱电脑技术论坛$DAEMON_HOME/jsvc \我爱电脑技术社区--打造最好的电脑技术自学交流平台& G# Z n( C4 o
-stop \打造最好的电脑自学交流论坛# Y8 n$ s* K8 M/ r+ Z& M& l: }4 y X6 A
-pidfile $PID_FILE \7 e, Q4 z ]* m3 T% p" i7 Z# \
com.sohu.jsvc.test.TestJsvc
% {, K; `; h) X我爱电脑技术社区--打造最好的电脑技术自学交流平台exit $?我爱电脑技术社区--打造最好的电脑技术自学交流平台% s2 t2 Z* P6 T/ s: d5 N1 N
;;
' P0 F1 ~7 I. M! Y5 d8 s" _www.520diannao.com我爱电脑技术社区--打造最好的电脑技术自学交流平台/ j: C, w0 T) H. y% I3 Q, D
*)我爱电脑技术社区--打造最好的电脑技术自学交流平台9 C3 X6 d& S: v0 i N
echo "Usage myjsvc start/stop"
& D* S1 v/ y* P/ w- o% b) L电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站exit 1;;www.520diannao.com Y4 Z: a& r$ P' ~ t$ Y; L2 s
esac