sighup_unix.go 845 B

123456789101112131415161718192021222324252627282930313233343536
  1. // +build !windows
  2. package service
  3. import (
  4. "os"
  5. "os/signal"
  6. "syscall"
  7. "github.com/drakkan/sftpgo/dataprovider"
  8. "github.com/drakkan/sftpgo/ftpd"
  9. "github.com/drakkan/sftpgo/httpd"
  10. "github.com/drakkan/sftpgo/logger"
  11. )
  12. func registerSigHup() {
  13. sig := make(chan os.Signal, 1)
  14. signal.Notify(sig, syscall.SIGHUP)
  15. go func() {
  16. for range sig {
  17. logger.Debug(logSender, "", "Received reload request")
  18. err := dataprovider.ReloadConfig()
  19. if err != nil {
  20. logger.Warn(logSender, "", "error reloading dataprovider configuration: %v", err)
  21. }
  22. err = httpd.ReloadTLSCertificate()
  23. if err != nil {
  24. logger.Warn(logSender, "", "error reloading TLS certificate: %v", err)
  25. }
  26. err = ftpd.ReloadTLSCertificate()
  27. if err != nil {
  28. logger.Warn(logSender, "", "error reloading FTPD TLS certificate: %v", err)
  29. }
  30. }
  31. }()
  32. }