日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

推薦:Linux啟動(dòng)Java程序jar包Shell腳本

 

每次啟動(dòng)JAVA程序jar包的時(shí)候,難道你還在手敲java -jar xxserver.jar……?邊敲邊想著都需要追加哪些參數(shù)?

今天就推薦給大家一個(gè)幾乎通用的Shell腳本,它支持Java程序Jar包的服務(wù)啟動(dòng)、服務(wù)停止、服務(wù)狀態(tài)查看,同時(shí)在腳本中追加了一些語(yǔ)法說(shuō)明,具體Shell命令,還請(qǐng)大家自行上網(wǎng)學(xué)習(xí)。

#!/bin/sh

# 該腳本為linux下啟動(dòng)java程序的腳本
#
# author: luandy
# date: 2021/1/15
#
# 特別注意:
# 該腳本使用系統(tǒng)kill命令來(lái)強(qiáng)制終止指定的java程序進(jìn)程。
# 所以在殺死進(jìn)程前,可能會(huì)造成數(shù)據(jù)丟失或數(shù)據(jù)不完整。如果必須要考慮到這類(lèi)情況,則需要改寫(xiě)此腳本,
#
# 
# 根據(jù)實(shí)際情況來(lái)修改以下配置信息 ##################################

# JAVA應(yīng)用程序的名稱
App_NAME=uid-consumer
# JAVA應(yīng)用程序端口號(hào)
SERVER_PORT=9999
# jar包存放路徑
JAR_PATH='/app/uid-consumer'
# jar包名稱
JAR_NAME=uid-consumer-1.1.0-SNAPSHOT.jar
# PID 代表是PID文件
JAR_PID=$JAR_NAME.pid
# 日志輸出文件
LOG_FILE=logs

# java虛擬機(jī)啟動(dòng)參數(shù)
JAVA_OPTS="-Xms512m -Xmx512m -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=1024m -XX:ParallelGCThreads=4 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=utf-8"

# 根據(jù)實(shí)際情況來(lái)修改以上配置信息 ##################################


# 檢查程序是否處于運(yùn)行狀態(tài)
is_exist() {
  # 查詢出應(yīng)用服務(wù)的進(jìn)程id,grep -v 是反向查詢的意思,查找除了grep操作的run.jar的進(jìn)程之外的所有進(jìn)程
  pid=`ps -ef|grep $JAR_NAME|grep -v grep|awk '{print $2}' `

  # [ ]表示條件測(cè)試。注意這里的空格很重要。要注意在'['后面和']'前面都必須要有空格
  # [ -z STRING ] 如果STRING的長(zhǎng)度為零則返回為真,即空是真
  # 如果不存在返回0,存在返回1
  if [ -z "${pid}" ]; then
   return 0
  else
    return 1
  fi
}

# ######### Shell腳本中$0、$?、$!、$$、$*、$#、$@等的說(shuō)明 #########

# $$ Shell本身的PID(ProcessID,即腳本運(yùn)行的當(dāng)前 進(jìn)程ID號(hào))
# $! Shell最后運(yùn)行的后臺(tái)Process的PID(后臺(tái)運(yùn)行的最后一個(gè)進(jìn)程的 進(jìn)程ID號(hào))
# $? 最后運(yùn)行的命令的結(jié)束代碼(返回值)即執(zhí)行上一個(gè)指令的返回值 (顯示最后命令的退出狀態(tài)。0表示沒(méi)有錯(cuò)誤,其他任何值表明有錯(cuò)誤)
# $- 顯示shell使用的當(dāng)前選項(xiàng),與set命令功能相同
# $* 所有參數(shù)列表。如"$*"用「"」括起來(lái)的情況、以"$1 $2 … $n"的形式輸出所有參數(shù),此選項(xiàng)參數(shù)可超過(guò)9個(gè)。
# $@ 所有參數(shù)列表。如"$@"用「"」括起來(lái)的情況、以"$1" "$2" … "$n" 的形式輸出所有參數(shù)。
# $# 添加到Shell的參數(shù)個(gè)數(shù)
# $0 Shell本身的文件名
# $1~$n 添加到Shell的各參數(shù)值。$1是第1參數(shù)、$2是第2參數(shù)…。

# 服務(wù)啟動(dòng)方法
start() {
  is_exist
  if [ $? -eq "1" ]; then
    echo "$APP_NAME is already running pid is ${pid}"
  else
    # jar服務(wù)啟動(dòng)腳本
    nohup java $JAVA_OPTS -Xloggc:$LOG_FILE/gc/gclog.log -XX:HeapDumpPath=$LOG_FILE/gc/HeapDump.hprof -jar $JAR_PATH/$JAR_NAME >./$LOG_FILE/run.log 2>&1 &
    echo $! > $JAR_PID
    echo "start $APP_NAME successed pid is $! "
    tail -1000f $LOG_FILE/run.log
   fi
  }

# 服務(wù)停止方法
stop() {
  # is_exist
  pidf=$(cat $JAR_PID)
  # echo "$pidf" 
  echo "pid = $pidf begin kill $pidf"
  kill $pidf
  rm -rf $JAR_PID
  sleep 2
  # 判斷服務(wù)進(jìn)程是否存在
  is_exist
  if [ $? -eq "1" ]; then
    echo "pid = $pid begin kill -9 $pid"
    kill -9  $pid
    sleep 2
    echo "$APP_NAME process stopped!" 
  else
    echo "$APP_NAME is not running!"
  fi 
}

# 服務(wù)運(yùn)行狀態(tài)查看方法
status() {
  is_exist
  if [ $? -eq "1" ]; then
    echo "$APP_NAME is running,pid is ${pid}"
  else
    echo "$APP_NAME is not running!"
  fi
}

# 重啟服務(wù)方法
restart() {
  # 調(diào)用服務(wù)停止命令
  stop
  # 調(diào)用服務(wù)啟動(dòng)命令
  start
}

# 幫助說(shuō)明,用于提示輸入?yún)?shù)信息
usage() {
    echo "Usage: sh run-service.sh [ start | stop | restart | status ]"
    exit 1
}

###################################
# 讀取腳本的第一個(gè)參數(shù)($1),進(jìn)行判斷
# 參數(shù)取值范圍:{ start | stop | restart | status }
# 如參數(shù)不在指定范圍之內(nèi),則打印幫助信息
###################################
#根據(jù)輸入?yún)?shù),選擇執(zhí)行對(duì)應(yīng)方法,不輸入則執(zhí)行使用說(shuō)明
case "$1" in
  'start')
    start
    ;;
  'stop')
    stop
    ;;
  'restart')
    restart
    ;;
  'status')
    status
    ;;
  *)
    usage
    ;;
esac
exit 0

趕緊收藏,還等什么,復(fù)制粘貼到 run-service.sh 文件中,馬上使用吧!

分享到:
標(biāo)簽:Java
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定