场景
某windows服务器上部署连接redis的某jar包。
需要先启动redis,然后等待10秒,确保redis启动,然后检测jar包对应的端口是否被占用
如果被占用,则将对应端口进程杀死,
最后启动jar包。
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
实现
新建bat脚本内容
@echo off
chcp 65001 >nul
echo ==============================================
echo 正在启动 Redis 服务...
echo ==============================================
:: 1. 启动 Redis
cd /d "D:\dataUpload\Redis-x64-3.0.504"
start "Redis Server" redis-server.exe redis.windows.conf
:: 2. 等待 10 秒
timeout /t 10 /nobreak >nul
echo.
echo ==============================================
echo 检查并释放 996 端口...
echo ==============================================
:: ===================== 核心代码 =====================
:: 查找996端口对应的进程PID
for /f "tokens=5 delims= " %%a in ('netstat -ano ^| findstr ":996"') do (
if not "%%a"=="0" (
echo 找到占用996端口的进程 PID: %%a
:: 强制杀死该进程
taskkill /f /pid %%a >nul 2>&1
echo 已杀死占用996端口的进程
)
)
:: ====================================================
echo.
echo ==============================================
echo 正在启动数据上传程序...
echo ==============================================
:: 3. 启动 jar 包
cd /d "D:\dataUpload"
title dataUpload!!!
echo 正在启动 ...
java -jar dataUpload.jar
pause
然后将此Bat加入到开机自启动目录即可:
win+r
shell:startup
复制此bat即可。
有可能被杀毒软件拦截,选择允许即可。