当前位置: 代码网 > 服务器>服务器>Linux > linux后台启动Jar包打印日志方式(windows10)

linux后台启动Jar包打印日志方式(windows10)

2024年09月05日 Linux 我要评论
前言不多解释命令,一看就懂,如下配置 bat 文件即可需要知道什么是bat文件,百度百科地址:什么是bat需要什么是shell脚本,百度百科地址:什么是shell脚本之后会另写一篇bat脚本命令大全,

前言

不多解释命令,一看就懂,如下配置 bat 文件即可

之后会另写一篇bat脚本命令大全,看心情把,就这样

一,windows10 创建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
  • 创建shell 对象,判断运行否则关闭窗口;
  • 运行jar 打印日志到指定目录
  • 退出窗口
  • 双击运行

三,windows10 指定配置文件,配置jvm 环境

编辑如下命令

@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 创建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 创建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下创建 start.sh 文件

将文件变为可执行文件

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

七,linux下创建 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下创建 restart.sh 文件

同上命令,不多撰述,打字费键盘,主要是懒

#!/bin/sh

app_home="$(cd "$(dirname "$bash_source")" && pwd)"

cd "$app_home" || exit

sh stop.sh
sleep 2
sh start.sh

九,总结

  • windows创建文件batlinux需要变为可执行文件,创建sh 文件
  • 后台启动jar包,输出日志
  • 通过端口杀进程,停止运行jar包
  • 学习bat脚本,shell脚本命令

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。 

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com