资讯·论坛·笑话大全·QQ表情·设为首页
发新话题
打印

[[ 其它 ]] 利用Jsvc把Java程序嵌入到Linux服务中去

利用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

TOP

5. 把myjsvc文件拷贝到/etc/init.d/目录下 我爱电脑技术论坛! A$ L, P7 I7 w

3 t6 q" v; D3 a( _/ V# ^/ G打造最好的电脑自学交流论坛6. #chmod -c 777 /etc/init.d/myjsvc 打造最好的电脑自学交流论坛  C- e" l, Z  L# k3 B1 h' ]
电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站9 o" e. ~' u. ~, w) \2 A+ |
7. 添加服务 电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站/ N. q! T4 k3 N$ x# v0 x

6 `; o  N1 M9 {* t; E/ q$ c: h# U! E& \电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站#chkconfig --add myjsvc 打造最好的电脑自学交流论坛2 w4 V( ^# t: Z3 p: t! r

1 }1 F/ C6 _) [- J) _$ `#chkconfig --level 345 myjsvc on 电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站1 D$ h! q: x( u# m

. A8 q, M% ]3 Y+ k0 [8 x打造最好的电脑自学交流论坛我爱电脑技术论坛" d- W  R; R3 A1 E
8. 完成,启动服务 打造最好的电脑自学交流论坛1 @: Y: t# z$ _

0 a: w' j' N, p! q0 w我爱电脑技术论坛#service myjsvc start 我爱电脑技术论坛* \7 a% R0 G0 P5 l. y, _$ n: y
电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站8 }1 ~7 L" h3 z* ^% Q  T
你可以从/test/log/myjsvc.out文件里看到如下信息:
" G  E" U6 \9 a' Y! N4 ewww.520diannao.com
6 Q; ?/ y$ y+ O我爱电脑技术论坛execute init(args) method
; _' G  r# b  B. A4 t我爱电脑技术论坛www.520diannao.com% m& {) J! |+ Y) x9 `7 F3 {& H
execute start method 电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站, N* S/ e3 _6 U6 t' O2 o

  i2 h# j; ?) ]' n7 Q) i; h打造最好的电脑自学交流论坛我爱电脑技术社区--打造最好的电脑技术自学交流平台1 |& c/ ~1 o3 D. [1 u
#service myjsvc stop
8 d2 R8 ~4 s: \$ W" r8 D+ n% N* \电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站
0 q8 B( r4 ^7 L' mwww.520diannao.com你会发现/test/log/myjsvc.out文件里会增加如下信息 www.520diannao.com0 z1 p: a* c$ d4 X4 c$ ]

2 y' S, I1 L3 c$ f: F6 `电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站execute stop method
. I9 @& q7 r; i我爱电脑技术论坛
  u$ G7 [  G# t( Q打造最好的电脑自学交流论坛execute destroy method 我爱电脑技术论坛% L! g. Z$ g! a4 I
我爱电脑技术社区--打造最好的电脑技术自学交流平台! I. p1 ^, w$ G6 p8 x7 h* c/ F
www.520diannao.com3 _* [$ O( g2 @+ i- J8 j4 S4 h4 _
并且在系统重启时会自动启动myjsvc服务
; w, n' ]9 e+ a3 |1 n
4 E( E2 v) X: T0 B# B# ~) G! V我爱电脑技术论坛
0 ?* q7 Q5 u/ _! U/ N* e' A6 ~" }4 I好了,一个简单的 liunx服务就写好了,你可以在TestJsvc的init(),start(),stop(),destroy()方法里添加你的业务,做你想做的事。

TOP

发新话题