sighup_unix.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // +build !windows
  2. package service
  3. import (
  4. "os"
  5. "os/signal"
  6. "syscall"
  7. "github.com/drakkan/sftpgo/common"
  8. "github.com/drakkan/sftpgo/dataprovider"
  9. "github.com/drakkan/sftpgo/ftpd"
  10. "github.com/drakkan/sftpgo/httpd"
  11. "github.com/drakkan/sftpgo/logger"
  12. "github.com/drakkan/sftpgo/telemetry"
  13. "github.com/drakkan/sftpgo/webdavd"
  14. )
  15. func registerSigHup() {
  16. sig := make(chan os.Signal, 1)
  17. signal.Notify(sig, syscall.SIGHUP)
  18. go func() {
  19. for range sig {
  20. logger.Debug(logSender, "", "Received reload request")
  21. err := dataprovider.ReloadConfig()
  22. if err != nil {
  23. logger.Warn(logSender, "", "error reloading dataprovider configuration: %v", err)
  24. }
  25. err = httpd.ReloadCertificateMgr()
  26. if err != nil {
  27. logger.Warn(logSender, "", "error reloading cert manager: %v", err)
  28. }
  29. err = ftpd.ReloadCertificateMgr()
  30. if err != nil {
  31. logger.Warn(logSender, "", "error reloading FTPD cert manager: %v", err)
  32. }
  33. err = webdavd.ReloadCertificateMgr()
  34. if err != nil {
  35. logger.Warn(logSender, "", "error reloading WebDAV cert manager: %v", err)
  36. }
  37. err = telemetry.ReloadCertificateMgr()
  38. if err != nil {
  39. logger.Warn(logSender, "", "error reloading telemetry cert manager: %v", err)
  40. }
  41. err = common.ReloadDefender()
  42. if err != nil {
  43. logger.Warn(logSender, "", "error reloading defender's lists: %v", err)
  44. }
  45. }
  46. }()
  47. }