restart_server.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import os
  2. import sys
  3. # 关闭服务进程
  4. def server_killer(port):
  5. # 判断port数据类型
  6. if isinstance(port, int):
  7. app_server = os.popen("lsof -i:{}".format(port)).readlines()
  8. else:
  9. app_server = os.popen("ps ax|grep {}|grep -v grep".format(port)).readlines()
  10. # 判断服务是否运行
  11. if app_server:
  12. # 获取端口进程号
  13. app_pid = app_server[1].split()[1] if isinstance(port, int) else app_server[0].split()[0]
  14. app_killer = "kill -9 " + str(app_pid)
  15. # 关闭服务进程
  16. os.popen(app_killer)
  17. # 重启retrieval_app服务
  18. def restart_retrieval_app():
  19. # 关闭服务进程
  20. server_killer(port=8835)
  21. print("即将启动retrieval_app服务")
  22. # 启动服务
  23. # os.popen("nohup python retrieval_app.py >> logs/retrieval_app.log 2>&1 &")
  24. os.popen("gunicorn -c guc_conf.py retrieval_app:app")
  25. # 重启hnsw_app服务
  26. def restart_hnsw_app():
  27. # 关闭服务进程
  28. server_killer(port=8836)
  29. print("即将启动hnsw_app服务")
  30. # 启动服务
  31. os.popen("nohup python hnsw_app.py > logs/temp_app.log 2>&1 &")
  32. # 重启dim_classify_app服务
  33. def restart_dim_classify_app():
  34. # 关闭服务进程
  35. server_killer(port=8837)
  36. print("即将启动dim_classify_app服务")
  37. # 启动服务
  38. os.popen("nohup python dim_classify_app.py > logs/temp_app.log 2>&1 &")
  39. # 重启retrieval_monitor服务
  40. def restart_retrieval_monitor():
  41. # 关闭服务进程
  42. server_killer(port="retrieval_monitor")
  43. print("即将启动retrieval_monitor服务")
  44. # 启动服务
  45. os.popen("nohup python retrieval_monitor.py > logs/temp_app.log 2>&1 &")
  46. if __name__ == "__main__":
  47. # 重启服务
  48. server_list = [restart_retrieval_app, restart_hnsw_app, restart_dim_classify_app, restart_retrieval_monitor]
  49. argv_list = sys.argv
  50. if len(argv_list) == 1:
  51. [server() for server in server_list]
  52. else:
  53. server_list[int(argv_list[1])]()