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

      java -jar 后臺(tái)運(yùn)行 linux jar包如何運(yùn)行l(wèi)inux

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

       一、方式

       
      1、一般分文兩種,一種是打成war包放到tomcat里面;另一種就是打成jar包直接運(yùn)行,jar包里面自帶tomcat;根據(jù)自己需要來決定使用哪種方式,這里我使用的是jar包方式
       
      二、啟動(dòng)
       
      1、直接啟動(dòng):java -jar demo.jar
       
      這種啟動(dòng)方式適合自己測試,因?yàn)橐话悴渴鹪贚inux上,這種方式關(guān)閉會(huì)話窗口或者ctrl+c都會(huì)關(guān)閉Java
       
      2、后臺(tái)啟動(dòng):java -jar demo.jar &
       
      這種方式會(huì)在后臺(tái)靜默運(yùn)行,關(guān)閉會(huì)話窗口會(huì)中斷Java,和上一種一樣,這兩個(gè)日志都是打印在窗口的,關(guān)閉會(huì)話就沒了
       
      3、nohup啟動(dòng):nohup java -jar demo.jar &
       
      這種會(huì)把日志打印到nohup.out文件中,但只會(huì)打印標(biāo)準(zhǔn)輸出不會(huì)打印錯(cuò)誤輸出,關(guān)閉通過pid號(hào)來kill掉
       
      4、nohup啟動(dòng):nohup java -jar demo.jar>/root/demo.log 2>&1 &
       
      這種會(huì)把普通輸出和錯(cuò)誤輸出都打印到demo.log中
       
      # 啟動(dòng)/停止等腳本
      #!/bin/sh
       
      ENV=dev
      APP_HOME="你的項(xiàng)目路徑"
      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
       
      #實(shí)時(shí)日志
      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啟動(dòng)參數(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
       
      #獲取進(jìn)程號(hào)
      getPid() {
          pid=`ps -ef |grep ${APP_FILE} |grep -v grep |awk '{print $2}'`
      }
       
      #啟動(dòng)服務(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 "啟動(dòng)中>>>>>>>"
          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ù)啟動(dòng),自帶定義一個(gè)系統(tǒng)服務(wù)來啟動(dòng),我使用的是這種
       
      1、創(chuàng)建一個(gè)系統(tǒng)服務(wù)文件
       
      vi /etc/systemd/system/demo.service
      1.
       
       
      2、輸入下面信息
       
       
      [Unit]
       
      # 服務(wù)名稱
      Description=demo Service
       
      # 在什么服務(wù)啟動(dòng)后啟動(dòng)
      After=syslog.target
       
      [Service]
       
      # jar包啟動(dòng)命令,這里java要寫絕對路徑
      ExecStart=/usr/local/jdk1.8.0_291/bin/java -jar /usr/local/java/demo.jar 
       
      [Install]
       
      # 設(shè)置服務(wù)安裝,可以設(shè)置多個(gè),用逗號(hào)隔開
      WantedBy=multi-user.target
       
       
      3、保存
      4、執(zhí)行命令
       
      復(fù)制 
      systemctl start demo    # 啟動(dòng)
      systemctl stop demo    # 關(guān)閉
      systemctl status demo    # 服務(wù)當(dāng)前狀態(tài)
      systemctl enable demo    # 設(shè)置服務(wù)開機(jī)啟動(dòng)
      systemctl disable demo    # 關(guān)閉服務(wù)開機(jī)啟動(dòng)
      systemctl restart demo    # 重啟服務(wù)
      -----------------------------------
      java -jar 后臺(tái)運(yùn)行 linux jar包如何運(yùn)行l(wèi)inux
      https://blog.51cto.com/u_13019/6306686
      (責(zé)任編輯:admin)本文地址:http://www.bmm520.net/info/LinuxServer/2023/0624/23985.html
      亚洲AV永久无码精品一百度影院| 亚洲人成电影网站色www| 亚洲AV成人一区二区三区观看 | 亚洲人午夜射精精品日韩| 国产成人不卡亚洲精品91| 青青青亚洲精品国产| 色欲aⅴ亚洲情无码AV| 久久综合亚洲色hezyo| 亚洲熟妇无码一区二区三区导航| 亚洲六月丁香六月婷婷蜜芽| 亚洲国产成a人v在线| 亚洲免费视频观看| 精品亚洲一区二区三区在线观看| 亚洲av麻豆aⅴ无码电影| 亚洲电影日韩精品| 亚洲一级特黄大片在线观看 | 久久亚洲AV午夜福利精品一区| 国产日韩亚洲大尺度高清| 亚洲成在人线av| 亚洲成人在线网站| 亚洲高清视频免费| 亚洲一区二区三区在线| 亚洲狠狠成人综合网| 亚洲日本VA中文字幕久久道具| 亚洲欧美熟妇综合久久久久| 亚洲AV无码AV日韩AV网站| 小说区亚洲自拍另类| 亚洲视频在线一区二区| 亚洲日本一区二区三区在线| 久久精品国产亚洲AV网站| 亚洲美女精品视频| 亚洲三级在线观看| 中文字幕精品亚洲无线码一区| 亚洲一区AV无码少妇电影☆| 久久久久亚洲AV片无码| 亚洲无圣光一区二区| 亚洲熟妇自偷自拍另欧美| 丁香亚洲综合五月天婷婷| 亚洲熟妇无码另类久久久| 亚洲AV无码一区二区二三区软件| 337p欧洲亚洲大胆艺术|