panel.go 570 B

12345678910111213141516171819202122232425262728
  1. package service
  2. import (
  3. "os"
  4. "syscall"
  5. "time"
  6. "github.com/mhsanaei/3x-ui/v2/logger"
  7. )
  8. // PanelService provides business logic for panel management operations.
  9. // It handles panel restart, updates, and system-level panel controls.
  10. type PanelService struct{}
  11. func (s *PanelService) RestartPanel(delay time.Duration) error {
  12. p, err := os.FindProcess(syscall.Getpid())
  13. if err != nil {
  14. return err
  15. }
  16. go func() {
  17. time.Sleep(delay)
  18. err := p.Signal(syscall.SIGHUP)
  19. if err != nil {
  20. logger.Error("failed to send SIGHUP signal:", err)
  21. }
  22. }()
  23. return nil
  24. }