sighup_unix.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. "github.com/drakkan/sftpgo/webdavd"
  12. )
  13. func registerSigHup() {
  14. sig := make(chan os.Signal, 1)
  15. signal.Notify(sig, syscall.SIGHUP)
  16. go func() {
  17. for range sig {
  18. logger.Debug(logSender, "", "Received reload request")
  19. err := dataprovider.ReloadConfig()
  20. if err != nil {
  21. logger.Warn(logSender, "", "error reloading dataprovider configuration: %v", err)
  22. }
  23. err = httpd.ReloadTLSCertificate()
  24. if err != nil {
  25. logger.Warn(logSender, "", "error reloading TLS certificate: %v", err)
  26. }
  27. err = ftpd.ReloadTLSCertificate()
  28. if err != nil {
  29. logger.Warn(logSender, "", "error reloading FTPD TLS certificate: %v", err)
  30. }
  31. err = webdavd.ReloadTLSCertificate()
  32. if err != nil {
  33. logger.Warn(logSender, "", "error reloading WebDav TLS certificate: %v", err)
  34. }
  35. }
  36. }()
  37. }