Windows和Linux下停止和启动jar包

1. windows启动的方式

1.1 前台运行方式

  1. 创建start.bat文件,运行指定目录下的jar包
目录结构
|--start.bat
|--data
	|--data.jar
@echo off
start java -jar %~dp0data\data.jar
pause

%~dp0 : 含义是当前所执行bat文件的路径

1.2 后台运行

@echo off
start javaw -jar %~dp0data\data.jar
exit

2. windows停止的方式

@echo off
set port=8090
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do taskkill /pid %%m -t -f
exit
  1. tokens=m-n:表示提取第m列至第n列。
  2. %%j :在 FOR 语句中显式声明 %%i。也 隐式声明了%%i %%j %%k %%l...它的个数由tokens后面的(m-n)决定,但是不能超过Z。
    你要是声明%%a 后面就是 %%b %%c ...

3. Linux

#!/bin/bash
## 指定jar包路径
export GATEWAY=./gateway/gateway.jar
export DATA=./airport-data/data.jar
export HIK=./hik/hik.jar
export DOC=./doc/doc.jar

export GATEWAY_port=10014
export DATA_port=10015
export HIK_port=10016
export DOC_port=10017

 
case "$1" in
 
start)
        ## 启动GATEWAY
        echo "--------gateway 开始启动--------------"
        nohup java -jar $GATEWAY >/dev/null 2>&1 &
        GATEWAY_pid=`lsof -i:$GATEWAY_port|grep "LISTEN"|awk '{print $2}'`
        until [ -n "$GATEWAY_pid" ]
            do
              GATEWAY_pid=`lsof -i:$GATEWAY_port|grep "LISTEN"|awk '{print $2}'`  
            done
        echo "service gateway pid is $GATEWAY_pid" 
        echo "--------gateway 启动成功--------------"
 
        ## 启动DATA
        echo "--------data 开始启动---------------"
        nohup java -jar $DATA  >/dev/null 2>&1 &
        DATA_pid=`lsof -i:$DATA_port|grep "LISTEN"|awk '{print $2}'` 
        until [ -n "$DATA_pid" ]
            do
              DATA_pid=`lsof -i:$DATA_port|grep "LISTEN"|awk '{print $2}'`  
            done
        echo "service data pid is $DATA_pid"     
        echo "---------data 启动成功-----------"
		
		## 启动hik
        echo "--------hik 开始启动---------------"
        nohup java -jar $HIK >/dev/null 2>&1 &
        HIK_pid=`lsof -i:$HIK_port|grep "LISTEN"|awk '{print $2}'` 
        until [ -n "$HIK_pid" ]
            do
              HIK_pid=`lsof -i:$HIK_port|grep "LISTEN"|awk '{print $2}'`  
            done
        echo "service hik pid is $HIK_pid"     
        echo "---------hik 启动成功-----------"
		
		## 启动doc
        echo "--------doc 开始启动---------------"
        nohup java -jar $DOC >/dev/null 2>&1 &
        DOC_pid=`lsof -i:$DOC_port|grep "LISTEN"|awk '{print $2}'` 
        until [ -n "$DOC_pid" ]
            do
              DOC_pid=`lsof -i:$DOC_port|grep "LISTEN"|awk '{print $2}'`  
            done
        echo "service doc pid is $DOC_pid"     
        echo "---------doc 启动成功-----------"
	        
        echo "===startAll success==="
        ;;
 
 stop)
        P_ID=`ps -ef | grep -w $GATEWAY | grep -v "grep" | awk '{print $2}'`
        if [ "$P_ID" == "" ]; then
            echo "===GATEWAY process not exists or stop success"
        else
            kill -9 $P_ID
            echo "GATEWAY killed success"
        fi
		P_ID=`ps -ef | grep -w $DATA | grep -v "grep" | awk '{print $2}'`
        if [ "$P_ID" == "" ]; then
            echo "===DATA process not exists or stop success"
        else
            kill -9 $P_ID
            echo "DATA killed success"
        fi
		P_ID=`ps -ef | grep -w $HIK | grep -v "grep" | awk '{print $2}'`
        if [ "$P_ID" == "" ]; then
            echo "===HIK process not exists or stop success"
        else
            kill -9 $P_ID
            echo "HIK killed success"
        fi
		P_ID=`ps -ef | grep -w $DOC | grep -v "grep" | awk '{print $2}'`
        if [ "$P_ID" == "" ]; then
            echo "===DOC process not exists or stop success"
        else
            kill -9 $P_ID
            echo "DOC killed success"
        fi
 
        echo "===stopAll success==="
        ;;   
 
restart)
        $0 stop
        sleep 2
        $0 start
        echo "===restartAll success==="
        ;;   
esac	
exit 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值