缘起:
最近偶然遇到一个问题,redis,nacos在运行的过程中闪退了,闪退之后再进行启动,会出现端口被占用的提示!
解决办法:
Linux中:
- 通过 ps -ef|grep + 应用名 查看应用的端口,
- 通过 kill -9 +端口号 强制干掉该进程,
- 最后重新启动应用
Windows中
两步方法 : 1 查询端口占用,2 强行杀死进程
- 通过 **netstat -aon|findstr ** +端口号 查看被占用的端口对应进程号
- 通过 taskkill /pid +进程号+ -t -f
更好的解决办法:
回归到最初的问题,那么在windows下,如果我的nacos或者redis进行了闪退,那么我们需要先将他们进行关闭,然后再重新启动。有没有便捷一点的方法吗?一劳永逸的那种,答案是有的!!!整个脚本。
1.新建个text文件
2.填写对应端口号及需要重启路径(如下图所示)
3.将txt后缀修改成bat
@echo off & setlocal EnableDelayedExpansion
set obj[0]=6379
set obj[1]=8848
set port=0
set pid=0
for /f "usebackq delims== tokens=1-2" %%a in (`set obj`) do (
set port=%%b
for /f "tokens=5" %%m in ('netstat -aon ^| findstr ":%%b"') do (
set pid=%%m
)
if "!pid!"=="0" (
echo 端口号【!port!】没有占用
) else (
echo 端口号【!port!】相关进程以杀死
taskkill /f /pid !pid!
)
set pid=0
)
pause
D:
cd \BaiduNetdiskDownload\nacos\nacos-server-1.4.1\nacos\bin
start startup.cmd
D:
cd \BaiduNetdiskDownload\redis
start redis-server.exe
测试一下!双击bat文件
随便按一个,好的舒服!
转载:https://blog.csdn.net/weixin_41935702/article/details/117252664
查看评论