check_stat.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package zdaemon
  2. import (
  3. "fmt"
  4. "git.swzry.com/zry/pathutils"
  5. "gopkg.in/yaml.v2"
  6. "io/ioutil"
  7. "os"
  8. "path"
  9. "runtime"
  10. )
  11. type yamldef_DaemonConfig struct {
  12. OS string `yaml:"os"`
  13. InstallMode string `yaml:"install_mode"`
  14. IsRunning bool `yaml:"is_running"`
  15. PID int `yaml:"pid"`
  16. IpcAddr string `yaml:"ipc_addr"`
  17. }
  18. func (zd *ZDaemon) getStatus() {
  19. zd.resetStatus()
  20. cpath := path.Join(zd.zdaemonPath, "zdaemon.yaml")
  21. fe, _ := pathutils.PathExists(cpath)
  22. if fe {
  23. ydata, err := ioutil.ReadFile(cpath)
  24. if err != nil {
  25. zd.resetStatus()
  26. zd.writeStatus()
  27. return
  28. }
  29. err = yaml.Unmarshal(ydata, zd.daemonConfig)
  30. if err != nil {
  31. zd.resetStatus()
  32. zd.writeStatus()
  33. return
  34. }
  35. } else {
  36. zd.resetStatus()
  37. zd.writeStatus()
  38. return
  39. }
  40. }
  41. func (zd *ZDaemon) resetStatus() {
  42. zd.daemonConfig = &yamldef_DaemonConfig{
  43. OS: runtime.GOOS,
  44. InstallMode: "free",
  45. IsRunning: false,
  46. PID: -1,
  47. IpcAddr: "",
  48. }
  49. }
  50. func (zd *ZDaemon) writeStatus() {
  51. cpath := path.Join(zd.zdaemonPath, "zdaemon.yaml")
  52. ydata, err := yaml.Marshal(zd.daemonConfig)
  53. if err != nil {
  54. fmt.Println("Failed marshal daemon.yaml: ", err.Error())
  55. os.Exit(-1)
  56. }
  57. err = ioutil.WriteFile(cpath, ydata, 0666)
  58. if err != nil {
  59. fmt.Println("Failed write daemon.yaml: ", err.Error())
  60. os.Exit(-1)
  61. }
  62. }