python监听端口重启服务脚本
2023-12-28 17:24:37
一、问题
之前遇到一个诡异的环境问题,有个项目,其中一个微服务经常会挂,服务器为windows系统,内存不大,设置jvm参数也没什么效果,陈年旧项,懒得多理,于是通过写个监听端口的脚本来重启服务。
二、解决
通过python运行系统命令,netstat -aon|findstr 端口号,查看端口是否占用,如果占用着,说明服务没挂,不做处理,sleep设置的时间,然后再重新运行查看端口占用命令;如果没占用,说明服务挂了,重新运行启动脚本,xxxx.bat,启动服务。
依赖包:
os(windows命令)
time(定时)
代码:
######################
# 根据端口自动重启脚本~ #
######################
import os
import time
port = input("\n>>>请输入端口: \n")
# C:/Users/syp1293/Desktop/configfile/center.bat
bat_path = input("\n>>>请输入bat文件路径: \n")
time_u = input("\n>>>请输入间隔时间: \n")
while True:
with os.popen('netstat -aon|findstr "' + port + '"') as res:
res = res.read().split('\n')
result = []
if res[0] == '':
# 不存在端口占用,启动服务
os.system('start ' + bat_path)
time.sleep(120)
continue
else:
for line in res:
# print(line)
temp = [i for i in line.split(' ') if i != '']
if len(temp) > 4:
# result.append({'pid': temp[4], 'address': temp[1], 'state': temp[3]})
print('PID:', temp[4])
# print('sleeping...')
time.sleep(int(time_u))
三、打包
生成exe文件,并且启动后显示为命令行。
pyinstaller -F osport.py
四、效果
输入端口号
输入要启动的bat脚本路径
然后就开始监听了,比较简单,可以自测。
文章来源:https://blog.csdn.net/qq_20741133/article/details/135236797
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!