java程序启动脚本

    在公司开发的系统包含多个服务进程,每个服务以单独的jvm进程的方式存在。为了节省存储空间以及对不同进程使用的jar包进行统一管理,要求所有服务使用的jar包都存放在同一个目录中,所有进程使用同一个jdk,每个服务有自己单独的目录存放主程序(服务启动逻辑和非共享逻辑)。我的db_service的启停脚本如下:

   

#!/bin/bash
#author:lixiang
#the script that control the db-service

BASE_DIR=~/smb_cloud
DBSERVICE_DIR=$BASE_DIR/services/db_service
SERVER_NAME="db-service"
PROCESS_NAME="com.dear.simpler.dbrpc.processor.MainProcessor"

JAVA_HOME=~/smb_cloud/environments/jdk
export JAVA=$JAVA_HOME/bin/java
#add libs and service to classpath
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$DBSERVICE_DIR/conf:$(ls $BASE_DIR/environments/libs/java/*.jar | tr '\n' :)$(ls *.jar | tr '\n' :)

LOG_FILE=./db_ctl.log

	
function running(){
	count=`ps aux | grep java | grep $PROCESS_NAME | grep -v grep | wc -l`
	if [ $count == 0 ];then
	    return 1
	else
	    return 0
	fi
}

function start_server(){
	if running; then
		echo "$SERVER_NAME is running."
		exit 1
	fi
	echo $CLASSPATH >>$LOG_FILE
	nohup $JAVA com.dear.simpler.dbrpc.processor.MainProcessor 2>&1 >>$LOG_FILE &
	sleep 3
	if running; then
                echo "$SERVER_NAME start success"
        else
                echo "$SERVER_NAME start fail"
    fi

	
}

function stop_server(){
	if ! running; then
		echo "$SERVER_NAME is not running."
		exit 1
	fi
	pid=`ps aux | grep java | grep $PROCESS_NAME | grep -v grep | awk {'print$2'}`
	kill  $pid
	sleep 3
	if ! running; then
		echo "$SERVER_NAME stop success."
	else
		kill -9 $pid
		sleep 3
		if ! running; then
			echo "$SERVER_NAME stop success."
		else
			echo "$SERVER_NAME stop fail."
		fi
	fi
}

function status(){  
    if running; then  
       echo "$SERVER_NAME is running."  
    else  
       echo "$SERVER_NAME was stopped."    
    fi  
}  

function help() {  
    echo "Usage: db_ctl {start|status|stop|restart}" >&2  
    echo "       start:             start the $SERVER_NAME server"  
    echo "       stop:              stop the $SERVER_NAME server"  
    echo "       restart:           restart the $SERVER_NAME server"  
    echo "       status:            get $SERVER_NAME current status,running or stopped."  
}  

command=$1
shift 1
case $command in
        start)
                start_server
                ;;
        stop)
                stop_server
                ;;
        status)
                status
                ;;
        restart)
                $0 stop
                $0 start
                ;;
        help)
                help
                ;;
        *)
                help
                exit 1
                ;;
esac





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值