歡迎您的來訪!有源碼,好建站(m.bmm520.net)源碼海洋源碼網為您提供快速建站平臺.

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

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

       一、方式

       
      1、一般分文兩種,一種是打成war包放到tomcat里面;另一種就是打成jar包直接運行,jar包里面自帶tomcat;根據自己需要來決定使用哪種方式,這里我使用的是jar包方式
       
      二、啟動
       
      1、直接啟動:java -jar demo.jar
       
      這種啟動方式適合自己測試,因為一般部署在Linux上,這種方式關閉會話窗口或者ctrl+c都會關閉Java
       
      2、后臺啟動:java -jar demo.jar &
       
      這種方式會在后臺靜默運行,關閉會話窗口會中斷Java,和上一種一樣,這兩個日志都是打印在窗口的,關閉會話就沒了
       
      3、nohup啟動:nohup java -jar demo.jar &
       
      這種會把日志打印到nohup.out文件中,但只會打印標準輸出不會打印錯誤輸出,關閉通過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)控參數
      JMX="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1091 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
       
      #JVM啟動參數
      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}'`
      }
       
      #啟動服務
      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
      }
       
      #停止服務
      stop() {
          getPid
          if [[ ! -n "$pid" ]]; then
           echo "$APP_NAME not running"
          else
            echo "$APP_NAME stop..."
            kill -9 ${pid}
          fi
      }
       
      #重啟服務
      restart() {
          stop
          sleep 1s
          start
      }
       
      #服務狀態(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)服務啟動,自帶定義一個系統(tǒng)服務來啟動,我使用的是這種
       
      1、創(chuàng)建一個系統(tǒng)服務文件
       
      vi /etc/systemd/system/demo.service
      1.
       
       
      2、輸入下面信息
       
       
      [Unit]
       
      # 服務名稱
      Description=demo Service
       
      # 在什么服務啟動后啟動
      After=syslog.target
       
      [Service]
       
      # jar包啟動命令,這里java要寫絕對路徑
      ExecStart=/usr/local/jdk1.8.0_291/bin/java -jar /usr/local/java/demo.jar 
       
      [Install]
       
      # 設置服務安裝,可以設置多個,用逗號隔開
      WantedBy=multi-user.target
       
       
      3、保存
      4、執(zhí)行命令
       
      復制 
      systemctl start demo    # 啟動
      systemctl stop demo    # 關閉
      systemctl status demo    # 服務當前狀態(tài)
      systemctl enable demo    # 設置服務開機啟動
      systemctl disable demo    # 關閉服務開機啟動
      systemctl restart demo    # 重啟服務
      -----------------------------------
      java -jar 后臺運行 linux jar包如何運行l(wèi)inux
      https://blog.51cto.com/u_13019/6306686
      (責任編輯:admin)本文地址:http://m.bmm520.net/info/LinuxServer/2023/0624/23985.html

      推薦資訊

      亚洲理论片在线中文字幕| 久久精品国产亚洲AV香蕉| 亚洲一区二区影视| 亚洲系列国产精品制服丝袜第| 亚洲精品无码久久久久sm| 中文字幕在亚洲第一在线| 亚洲美女高清一区二区三区 | 国产成人亚洲综合在线| 亚洲精品欧美综合四区| 亚洲爆乳少妇无码激情| 亚洲乱码无人区卡1卡2卡3| 亚洲日本一线产区和二线| 亚洲熟妇无码一区二区三区| 亚洲人成网站在线在线观看| 亚洲国产高清国产拍精品| 亚洲AV日韩AV无码污污网站 | 337p欧洲亚洲大胆艺术| 亚洲黄色片免费看| 亚洲国产av美女网站| 亚洲自国产拍揄拍| 亚洲色大成网站www| 亚洲av无码av在线播放| 日韩精品亚洲专区在线观看| 亚洲AV蜜桃永久无码精品| 91麻豆精品国产自产在线观看亚洲| 丁香五月亚洲综合深深爱| 亚洲乱码无码永久不卡在线| 亚洲AV无码久久| 亚洲成人黄色在线观看| 久久亚洲精品国产亚洲老地址| 亚洲精品无码国产片| 日韩精品亚洲专区在线观看| 永久亚洲成a人片777777 | 亚洲Av无码乱码在线观看性色| 国产成人亚洲综合无码| 亚洲av不卡一区二区三区| 亚洲成人网在线播放| 亚洲一区二区三区写真| 国产91成人精品亚洲精品| 亚洲一级特黄大片在线观看| 亚洲成a人片在线观看日本|