59 lines
1.7 KiB
Python
59 lines
1.7 KiB
Python
import socket
|
||
import subprocess
|
||
import time
|
||
from datetime import datetime
|
||
|
||
def get_time():
|
||
return datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
||
|
||
|
||
def check_port(host, port):
|
||
try:
|
||
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||
sock.settimeout(5)
|
||
result = sock.connect_ex((host, port))
|
||
sock.close()
|
||
return result
|
||
except Exception as e:
|
||
print(f"[{get_time()}] 端口检测异常: {str(e)}")
|
||
return False
|
||
|
||
|
||
|
||
def restart_service():
|
||
try:
|
||
subprocess.run("bash /root/docker/milvus/standalone_embed.sh restart", shell=True)
|
||
# 正确示例
|
||
# subprocess.run(["bash", "standalone_embed.sh", "restart"])
|
||
print(f"[{get_time()}] milvus服务重启成功")
|
||
return True
|
||
except subprocess.CalledProcessError as e:
|
||
print(f"[{get_time()}] 服务重启失败: {str(e)}")
|
||
return False
|
||
|
||
|
||
def restart_zzbservice():
|
||
try:
|
||
subprocess.run("cd /root/pdf_parser/zzb_data_prod", shell=True)
|
||
subprocess.run("nohup python3 app.py > app.log 2>&1 &", shell=True)
|
||
print("zzb服务重启成功")
|
||
return True
|
||
except subprocess.CalledProcessError as e:
|
||
print(f"[{get_time()}] zzb服务重启失败: {str(e)}")
|
||
|
||
if __name__ == '__main__':
|
||
print(f"[{get_time()}] 启动Milvus监控服务")
|
||
port_ok = check_port("127.0.0.1", 19530)
|
||
if port_ok not in [0,True]:
|
||
print("检测到Milvus服务异常,尝试重启...")
|
||
restart_service()
|
||
|
||
print(f"[{get_time()}] 启动zzb监控服务")
|
||
port_ok = check_port("127.0.0.1", 8000)
|
||
|
||
if port_ok not in [0,True]:
|
||
print("检测到zzb服务异常,尝试重启...")
|
||
restart_zzbservice()
|
||
|
||
|