歡迎您的來訪!有源碼,好建站(m.bmm520.net)源碼海洋源碼網(wǎng)為您提供快速建站平臺.
      當(dāng)前位置: 首頁 > 行業(yè)資訊 > Linux服務(wù)器 >

      java -jar 后臺運行 linux jar包如何運行l(wèi)inux

      時間:2023-06-24 21:02來源:未知 作者:admin 點擊:
      一、方式 1、一般分文兩種,一種是打成war包放到tomcat里面;另一種就是打成jar包直接運行,jar包里面自帶tomcat;根據(jù)自己需要來決定使用哪種方式,這里我使用的是jar包方式 二、啟動 1、直接啟動:java -jar demo.jar 這種啟動方式適合自己測試,因為一般

       一、方式

       
      1、一般分文兩種,一種是打成war包放到tomcat里面;另一種就是打成jar包直接運行,jar包里面自帶tomcat;根據(jù)自己需要來決定使用哪種方式,這里我使用的是jar包方式
       
      二、啟動
       
      1、直接啟動:java -jar demo.jar
       
      這種啟動方式適合自己測試,因為一般部署在Linux上,這種方式關(guān)閉會話窗口或者ctrl+c都會關(guān)閉Java
       
      2、后臺啟動:java -jar demo.jar &
       
      這種方式會在后臺靜默運行,關(guān)閉會話窗口會中斷Java,和上一種一樣,這兩個日志都是打印在窗口的,關(guān)閉會話就沒了
       
      3、nohup啟動:nohup java -jar demo.jar &
       
      這種會把日志打印到nohup.out文件中,但只會打印標(biāo)準(zhǔn)輸出不會打印錯誤輸出,關(guān)閉通過pid號來kill掉
       
      4、nohup啟動:nohup java -jar demo.jar>/root/demo.log 2>&1 &
       
      這種會把普通輸出和錯誤輸出都打印到demo.log中
       
      # 啟動/停止等腳本
      #!/bin/sh
       
      ENV=dev
      APP_HOME="你的項目路徑"
      APP_NAME=MyDemo
      RUNNING_USER=root
      LOG_DATE=`date +%Y%m%d%H%M%S`
       
      #創(chuàng)建日志路徑
      if [[ ! -d "$APP_HOME/logs" ]]; then
        mkdir ${APP_HOME}/logs
      fi
       
      if [[ ! -f "$APP_HOME/$APP_NAME.jar" ]]; then
        echo "---------------------------------"
        echo "$APP_NAME不存在>>>>>"
        echo "---------------------------------"
        exit 1
      fi
       
      #實時日志
      LOG_PATH=${APP_HOME}/logs/${APP_NAME}.out
       
      #GC日志信息
      GC_LOG_PATH=${APP_HOME}/logs/gc-${APP_NAME}-${LOG_DATE}.log
       
      #JMX監(jiān)控參數(shù)
      JMX="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1091 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
       
      #JVM啟動參數(shù)
      JVM_OPTS="-Dname=$APP_NAME -Djeesuite.configcenter.profile=$ENV -Duser.timezone=Asia/Shanghai -Xms512M -Xmx512M -XX:PermSize=256M -XX:MaxPermSize=512M -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps -Xloggc:$GC_LOG_PATH -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC"
       
      APP_FILE=${APP_NAME}.jar
      pid=0
       
      #獲取進程號
      getPid() {
          pid=`ps -ef |grep ${APP_FILE} |grep -v grep |awk '{print $2}'`
      }
       
      #啟動服務(wù)
      start() {
        getPid
        if [[ ! -n "$pid" ]]; then
          JAVA_CMD="nohup java -jar $JVM_OPTS ${APP_HOME}/${APP_NAME}.jar >> $LOG_PATH 2>&1 &"
          echo "---------------------------------"
          su  ${RUNNING_USER} -c "$JAVA_CMD"
          echo "啟動中>>>>>>>"
          echo "---------------------------------"
          sleep 2s
          #tail -f ${LOG_PATH}
        else
            echo "$APP_NAME is running PID: $pid"
        fi
      }
       
      #停止服務(wù)
      stop() {
          getPid
          if [[ ! -n "$pid" ]]; then
           echo "$APP_NAME not running"
          else
            echo "$APP_NAME stop..."
            kill -9 ${pid}
          fi
      }
       
      #重啟服務(wù)
      restart() {
          stop
          sleep 1s
          start
      }
       
      #服務(wù)狀態(tài)
      status() {
         getPid
         if [[ ! -n "$pid" ]]; then
           echo "$APP_NAME not running"
         else
           echo "$APP_NAME running PID: $pid"
         fi
      }
       
      #查看最近100行日志
      hundred() {
         LOG_PATH=${APP_HOME}/logs/${APP_NAME}.out
         tail -100f ${LOG_PATH}
      }
       
      case $1 in
      start)
      start
      ;;
      stop)
      stop
      ;;
      restart)
      restart
      ;;
      status)
      status
      ;;
      log)
      hundred
      ;;
      *)
      echo "$0: Usage: $0 {start|stop|restart|status|log}"
      exit 1
      ;;
      esac
       
      5、系統(tǒng)服務(wù)啟動,自帶定義一個系統(tǒng)服務(wù)來啟動,我使用的是這種
       
      1、創(chuàng)建一個系統(tǒng)服務(wù)文件
       
      vi /etc/systemd/system/demo.service
      1.
       
       
      2、輸入下面信息
       
       
      [Unit]
       
      # 服務(wù)名稱
      Description=demo Service
       
      # 在什么服務(wù)啟動后啟動
      After=syslog.target
       
      [Service]
       
      # jar包啟動命令,這里java要寫絕對路徑
      ExecStart=/usr/local/jdk1.8.0_291/bin/java -jar /usr/local/java/demo.jar 
       
      [Install]
       
      # 設(shè)置服務(wù)安裝,可以設(shè)置多個,用逗號隔開
      WantedBy=multi-user.target
       
       
      3、保存
      4、執(zhí)行命令
       
      復(fù)制 
      systemctl start demo    # 啟動
      systemctl stop demo    # 關(guān)閉
      systemctl status demo    # 服務(wù)當(dāng)前狀態(tài)
      systemctl enable demo    # 設(shè)置服務(wù)開機啟動
      systemctl disable demo    # 關(guān)閉服務(wù)開機啟動
      systemctl restart demo    # 重啟服務(wù)
      -----------------------------------
      java -jar 后臺運行 linux jar包如何運行l(wèi)inux
      https://blog.51cto.com/u_13019/6306686
      (責(zé)任編輯:admin)本文地址:http://m.bmm520.net/info/LinuxServer/2023/0624/23985.html

      推薦資訊

      久久久久亚洲AV综合波多野结衣| 亚洲日韩精品无码专区加勒比| 亚洲熟伦熟女专区hd高清| 亚洲短视频男人的影院| 亚洲精品蜜桃久久久久久| 一本色道久久综合亚洲精品| 国产亚洲成人在线播放va| 无码不卡亚洲成?人片| 日批日出水久久亚洲精品tv| 大胆亚洲人体视频| 国产亚洲视频在线观看| 一本久久综合亚洲鲁鲁五月天| 日韩色日韩视频亚洲网站| 一本久到久久亚洲综合| 国产亚洲情侣久久精品| 亚洲国产香蕉人人爽成AV片久久| 亚洲国产精品激情在线观看| 亚洲国产成人久久综合野外| 亚洲国模精品一区| 中文字幕亚洲日韩无线码| 亚洲欧洲日产国码av系列天堂 | 大胆亚洲人体视频| 亚洲女同成人AⅤ人片在线观看| 亚洲国产精品一区二区九九 | 另类专区另类专区亚洲| 亚洲欧洲日产国码一级毛片| 中文字幕不卡亚洲| 亚洲AV综合色区无码一区爱AV| 久久国产亚洲观看| 亚洲欧洲日产国码在线观看| 亚洲综合免费视频| 亚洲已满18点击进入在线观看| 亚洲狠狠婷婷综合久久蜜芽| 国产精品国产亚洲区艳妇糸列短篇| gogo全球高清大胆亚洲| 久久久久亚洲?V成人无码| 日韩亚洲欧洲在线com91tv| 久久亚洲免费视频| 亚洲喷奶水中文字幕电影| 亚洲午夜理论片在线观看| www.亚洲色图.com|