JSVC简介之快速入门

1、JSVC简介

Apache基金会会common(类似于guava)项目下的项目

2、为什么要使用JSVC?

  1. java应用增加一种启动方式  (Java的缺点:只能用main方法启动)
  2. 应用能使用1024以下端口(为啥tomcat可以指定端口)
  3. 系统重启,jsvc启动的应用也会重启
  4. 其它优点待发现

3、JSVC使用准备

下载、安装、编译成可执行文件jsvc、配置PATH变量

1下载http://commons.apache.org/proper/commons-daemon/jsvc.html
2安装commons-daemon-1.2.4-src.tar
3编译成可执行文件jsvc
./configure --with-java=/usr/java

make
4

配置PATH变量

export PATH=$PATH:/usr/java

 

4、JSVC使用

实现Daemon接口

jsvc启动脚本

#!/bin/bash
APP_HOME=${HOME}/apps/loan-xxx-service
cd ${APP_HOME}/bin/deploy

if [ "`ps -ef |grep 'loan-xxx-service'|grep jsvc|grep -v grep`" ];then
        kill -9 `ps -ef |grep 'loan-xxx-service'|grep jsvc|grep -v grep|awk '{print $2}'|sort -d -r`
fi

if [ -f "${APP_HOME}/bin/pids/loan-xxx-service.pid" ];then
    jsvc -pidfile ${APP_HOME}/bin/pids/loan-xxx-service.pid -stop com.yusys.loan.common.bootstrap.ServiceDaemon
fi

for i in "${APP_HOME}"/lib/*.jar
do
    MAINCLASS="$MAINCLASS":"$i"
done

MAINCLASS="$MAINCLASS":"${APP_HOME}/lib"

if [ ! "$JAVA_HOME" ];then  
    export JAVA_HOME=/usr/java/jdk1.8.0_161
    export PATH=$JAVA_HOME/bin:$PATH
fi

jsvc -home $JAVA_HOME -cp $MAINCLASS -outfile ${APP_HOME}/logs/loan-xxx-service.log -errfile ${APP_HOME}/logs/loan-xxx-service.err -pidfile ${APP_HOME}/bin/pids/loan-xxx-service.pid  -Ddisconf.conf=${APP_HOME}/conf/disconf.properties -Dlog4j.configurationFile=${APP_HOME}/conf/log4j2.xml -server -Xms1024m -Xmx1024m -Xmn390m -Xss256k -XX:MaxMetaspaceSize=256m -Xss256k -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=70 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSClassUnloadingEnabled -XX:+DisableExplicitGC -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSScavengeBeforeRemark -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintGCApplicationStoppedTime -XX:+PrintFlagsFinal -Xloggc:${APP_HOME}/logs/gc.log.`date +%Y%m%d.%H%M%S` -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${APP_HOME}/logs/dump_core_pid%p.hprof -XX:ErrorFile=${APP_HOME}/logs/hs_err_pid%p.log com.yusys.loan.common.bootstrap.ServiceDaemon

if [ $? -ne 0 ]; then
    echo "1|启动服务失败"
    exit 1
else
    echo "0|启动服务成功"
    exit 1
fi

5、JSVC原理简介

         Jsvc使用3个进程:启动进程、控制器进程和受控进程。受控制的进程也是主java线程,如果JVM崩溃,控制器将在下一分钟重新启动它。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值