简介
这篇文章主要介绍了linux后台启动Jar包打印日志方式(windows10),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教,
不多解释命令,一看就懂,如下配置 bat 文件即可
- 需要知道什么是
bat
文件,百度百科地址:什么是bat - 需要什么是
shell
脚本,百度百科地址:什么是shell脚本
之后会另写一篇bat脚本命令大全,看心情把,就这样
编辑如下命令
@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
- 创建shell 对象,判断运行否则关闭窗口;
- 运行jar 打印日志到指定目录
- 退出窗口
- 双击运行
编辑如下命令
@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失效,这样做的好处是不用更改配置重新部署,坏处就是配置信息都暴露出来让别人一下都看到了 - 双击运行
@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
- 双击运行
@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
将文件变为可执行文件
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参数 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
执行文件
./start.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
同上命令,不多撰述,打字费键盘,主要是懒
#!/bin/sh APP_HOME="$(cd "$(dirname "$BASH_SOURCE")" && pwd)" cd "$APP_HOME" || exit sh stop.sh sleep 2 sh start.sh
windows
创建文件bat
,linux
需要变为可执行文件,创建sh
文件- 后台启动jar包,输出日志
- 通过端口杀进程,停止运行jar包
- 学习bat脚本,shell脚本命令
以上为个人经验,希望能给大家一个参考,也希望大家多多支持腾创网。
以上本篇文章的全部内容了,感兴趣的小伙伴可以看看,更多精彩内容关注腾创网www.tengchuangw.com
© 版权声明
本站提供的资源,都来自网络,版权争议与本站无关,所有内容及软件的文章仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,我们不保证内容的长久可用性,通过使用本站内容随之而来的风险与本站无关,您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。侵删请致信E-mail: 571533527@qq.com
THE END
暂无评论内容