linux后臺啟動Jar包打印日志方式(windows10)
更新時間:2024年07月13日 09:20:04 作者:可樂cc呀
這篇文章主要介紹了linux后臺啟動Jar包打印日志方式(windows10),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
前言
不多解釋命令,一看就懂,如下配置 bat 文件即可
- 需要知道什么是
bat
文件,百度百科地址:什么是bat - 需要什么是
shell
腳本,百度百科地址:什么是shell腳本
之后會另寫一篇bat腳本命令大全,看心情把,就這樣
一,windows10 創(chuàng)建start.bat文件
二,windows10 以文本編輯打開文件
編輯如下命令
@echo off %1 mshta vbscript:CreateObject("WScript.Shell").Run("%~s0 ::",0,FALSE)(window.close)&&exit java -jar D:\test\test.jar > D:\test\log\server.log 2>&1 & exit
- 創(chuàng)建shell 對象,判斷運行否則關閉窗口;
- 運行jar 打印日志到指定目錄
- 退出窗口
- 雙擊運行
三,windows10 指定配置文件,配置Jvm 環(huán)境
編輯如下命令
@echo off set AppName=monitor-admin echo start %AppName% service set JAVA_OPTS=-Xms512m -Xmx2048m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError ^ -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC java -jar %JAVA_OPTS% ./bin/%AppName%.jar --spring.config.location=./conf/application.yml,./conf/application-druid.yml > ./log/server.log 2>&1 & echo start success close window pause
- 這里的
conf
文件夾是同目錄級別下的yml 文件,也就是說設置外部的配置文件生效,讓jar內部的yml失效,這樣做的好處是不用更改配置重新部署,壞處就是配置信息都暴露出來讓別人一下都看到了 - 雙擊運行
四,windows10 創(chuàng)建stop.bat 關閉特定端口的java程序
@echo off set port=10011 echo start kill app server, by %port% for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do taskkill /f /pid %%m echo end pause
- 雙擊運行
五,windows10 創(chuàng)建restart.bat ,重啟jar包
@echo off %1 mshta vbscript:CreateObject("WScript.Shell").Run("%~s0 ::",0,FALSE)(window.close)&&exit set port=8080 for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do taskkill /f /pid %%m & set JAVA_OPTS=-Xms256m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m java -jar D:\test\test.jar --spring.config.location=./conf/application.yml > D:\test\log\server.log 2>&1 & exit
六,Linux下創(chuàng)建 start.sh 文件
將文件變?yōu)榭蓤?zhí)行文件
chmod 777 start.sh
編輯文件內容
將 AppName
變量值,改為自己的jar 名稱即可
#!/bin/sh APP_HOME="$(cd "$(dirname "$BASH_SOURCE")" && pwd)" AppName=test JAR_PATH=$(find "$APP_HOME"/bin -name "${AppName}*.jar") JAR_NAME=${JAR_PATH##*/} APP_PID="app.pid" # JVM參數(shù) JVM_OPTS="-Dname=$JAR_NAME -Duser.timezone=Asia/Shanghai -Xms512m -Xmx2048m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError \ -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC" PID="" query() { PID=$(ps -ef | grep java | grep "$APP_HOME"/bin/$AppName | grep -v grep | awk '{print $2}') } echo "Start $JAR_NAME ..." cd "$APP_HOME" || exit query if [ x"$PID" != x"" ]; then echo "$AppName is running on pid : ${PID}" echo "${PID}" >$APP_PID else nohup java "$JVM_OPTS" -jar "$JAR_PATH" --spring.config.location=./conf/application.yml,./conf/application-druid.yml >/dev/null 2>&1 & echo "Start running..." sleep 3 query echo "${PID}" >$APP_PID echo "Start $JAR_NAME success on pid: ${PID}" fi
執(zhí)行文件
./start.sh
七,linux下創(chuàng)建 stop.sh 文件
同上命令,不多撰述,打字費鍵盤,主要是懶
#!/bin/sh APP_HOME=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) AppName=test PID="" query() { PID=$(ps -ef | grep java | grep "$APP_HOME"/bin/$AppName | grep -v grep | awk '{print $2}') } echo "Stop $AppName" query if [ x"$PID" != x"" ]; then kill -TERM "$PID" echo "$AppName (pid:$PID) exiting..." while [ x"$PID" != x"" ]; do sleep 1 query done echo "$AppName exited." else echo "$AppName already stopped." fi
八,linux下創(chuàng)建 restart.sh 文件
同上命令,不多撰述,打字費鍵盤,主要是懶
#!/bin/sh APP_HOME="$(cd "$(dirname "$BASH_SOURCE")" && pwd)" cd "$APP_HOME" || exit sh stop.sh sleep 2 sh start.sh
九,總結
windows
創(chuàng)建文件bat
,linux
需要變?yōu)榭蓤?zhí)行文件,創(chuàng)建sh
文件- 后臺啟動jar包,輸出日志
- 通過端口殺進程,停止運行jar包
- 學習bat腳本,shell腳本命令
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Ubuntu下如何創(chuàng)建XFS文件系統(tǒng)的LVM詳解
這篇文章主要給大家介紹了關于在Ubuntu下如何創(chuàng)建XFS文件系統(tǒng)的LVM的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2018-10-10linux下因為系統(tǒng)編碼問題造成亂碼的快速解決方法
下面小編就為大家?guī)硪黄猯inux下因為系統(tǒng)編碼問題造成亂碼的快速解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10CentOS 7.x編譯安裝Nginx1.10.3+MySQL5.7.16+PHP5.2 5.3 5.4 5.5 5.6
這篇文章主要介紹了CentOS 7.x編譯安裝Nginx1.10.3+MySQL5.7.16+PHP5.2 5.3 5.4 5.5 5.6 7.0 7.1多版本全能環(huán)境,需要的朋友可以參考下2018-01-01