kill_db.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package auto
  2. import (
  3. "fmt"
  4. "xg_auto_deploy/internal/global"
  5. "xg_auto_deploy/internal/remote"
  6. )
  7. func KillToNodes(nodeIds []string) {
  8. global.Logs.Infoln("----------------开始kill----------------------------")
  9. if nodeIds[0] == "all" {
  10. fmt.Println("is ALL")
  11. for _, nodeTemp := range global.ServerNodeConfigs {
  12. //NodeId := nodeTemp.NodeId
  13. id, err := remote.SingleCmd(&nodeTemp, fmt.Sprintf("ps -ef | grep %s | grep -v grep | awk '{print $2}'", nodeTemp.XuguAddr))
  14. if err != nil {
  15. global.Logs.Errorf("查询节点%s kill进程失败:%s \n", nodeTemp.NodeId, err)
  16. return
  17. }
  18. cmd := fmt.Sprintf("kill -9 %s", id)
  19. msg, err := remote.SingleCmd(&nodeTemp, cmd)
  20. if err != nil {
  21. global.Logs.Errorf("查询节点%s 发送kill进程失败:%s \n", nodeTemp.NodeId, err)
  22. return
  23. }
  24. global.Logs.Infof("查询节点%s kill进程成功:%s", nodeTemp.NodeId, msg)
  25. }
  26. return
  27. }
  28. if !IsNumericArray(nodeIds) {
  29. fmt.Println("传入指定节点参数错误,请检查:", nodeIds)
  30. return
  31. }
  32. for _, NodeId := range nodeIds {
  33. nodeTemp := global.ServerNodeConfigs[NodeId]
  34. id, err := remote.SingleCmd(&nodeTemp, fmt.Sprintf("ps -ef | grep %s | grep -v grep | awk '{print $2}'", nodeTemp.XuguAddr))
  35. if err != nil {
  36. global.Logs.Errorf("查询节点%s kill进程失败:%s \n", nodeTemp.NodeId, err)
  37. return
  38. }
  39. cmd := fmt.Sprintf("kill -9 %s", id)
  40. msg, err := remote.SingleCmd(&nodeTemp, cmd)
  41. if err != nil {
  42. global.Logs.Errorf("查询节点%s 发送kill进程失败:%s \n", nodeTemp.NodeId, err)
  43. return
  44. }
  45. global.Logs.Infof("查询节点%s kill进程成功 %s", nodeTemp.NodeId, msg)
  46. }
  47. }