一. start.bat (启动脚本)
chcp 65001
@title iot
@REM *************************************************************************
@REM This script is used to start biz-server.
@REM
@REM System will load all jar-packages in 'lib' directory
@REM *************************************************************************
@set JAVA_VM=-XX:PermSize=64M -XX:MaxNewSize=5120m -XX:MaxPermSize=5120m -Djava.awt.headless=true -Xmx5120m -Xms3072m
@set JAVA_OPTIONS="-Xmx5120m -Xms5120m"
@set DEPLOY_PATH=%cd%
set logdir=logs
set logfilename=%logdir%\%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%.log
java -jar -Xmx5g -Dfile.encoding=utf-8 iot.jar --spring.config.location=bootstrap.properties > "%logfilename%" 2>&1
@pause
问题描述:
在windows环境中,生成的日志文件可能会只有周几的名称(如 周三.log),而不是正常的年月日格式,此时需要修改windows环境日期格式设置
二. stop.bat (停止脚本)
@echo off
set "jarName=iot"
REM 查询包含特定名称的进程 ID
for /f "tokens=1" %%i in ('jps -l ^| findstr "%jarName%"') do (
echo Closing process with PID %%i
REM 关闭相应的 Java 进程
taskkill /F /PID %%i
)
ping 127.0.0.1 -n 5 > nul
exit
三. restart.bat (重启脚本)
@echo off
start stop.bat
ping 127.0.0.1 -n 5 > nul
start start.bat
exit
四. monitor.ps1 (监测脚本-Windows PowerShell脚本)
$jarName = "iot.jar"
$restartTime = 60
$batchFilePath = "restart.bat"
while ($true) {
$jpsOutput = jps -l | findStr "$jarName"
foreach ($line in $jpsOutput) {
$processId = ($line -split "\s+")[0]
Write-Host "Process ID for $($desiredString) is: $($processId)"
}
Start-Sleep -Seconds $restartTime
$process = Get-Process java | Where-Object { $_.ID -like "*$processId" }
if ($process) {
$memoryUsage = $process.WorkingSet64
$Name = $process.Path
Write-Host "Memory usage: $memoryUsage KB"
}
Start-Sleep -Seconds $restartTime
$newProcess = Get-Process java | Where-Object { $_.ID -like "*$processId" }
if ($newProcess) {
$newMemoryUsage = $newProcess.WorkingSet64
Write-Host "NewMemoryUsage usage: $newMemoryUsage KB"
if ($newMemoryUsage -eq $memoryUsage) {
Write-Host "Memory has not changed. Restarting script..."
Start-Process -FilePath $batchFilePath
Start-Sleep -Seconds $restartTime
continue
}
}
}