restart_server.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. # 重启retrieval_monitor服务
  33. def restart_retrieval_monitor():
  34. # 关闭服务进程
  35. server_killer(port="retrieval_monitor")
  36. print("即将启动retrieval_monitor服务")
  37. # 启动服务
  38. os.popen("nohup python retrieval_monitor.py > logs/temp_app.log 2>&1 &")
  39. if __name__ == "__main__":
  40. # 重启服务
  41. server_list = [restart_retrieval_app, restart_hnsw_app, restart_retrieval_monitor]
  42. argv_list = sys.argv
  43. if len(argv_list) == 1:
  44. [server() for server in server_list]
  45. else:
  46. server_list[int(argv_list[1])]()