panel.go 400 B

1234567891011121314151617181920212223242526
  1. package service
  2. import (
  3. "os"
  4. "syscall"
  5. "time"
  6. "x-ui/logger"
  7. )
  8. type PanelService struct {
  9. }
  10. func (s *PanelService) RestartPanel(delay time.Duration) error {
  11. p, err := os.FindProcess(syscall.Getpid())
  12. if err != nil {
  13. return err
  14. }
  15. go func() {
  16. time.Sleep(delay)
  17. err := p.Signal(syscall.SIGHUP)
  18. if err != nil {
  19. logger.Error("send signal SIGHUP failed:", err)
  20. }
  21. }()
  22. return nil
  23. }