From 982aae6d535a61d9af682ae902ea335b19204112 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Mon, 8 Dec 2025 01:24:42 -0800 Subject: SFTP: support reloading user store on HUP signal (#7651) Fixes #7650 This change enables the SFTP server to reload the user store configuration (sftp_userstore.json) when a HUP signal is sent to the process, without requiring a service restart. Changes: - Add Reload() method to FileStore to re-read users from disk - Add Reload() method to SFTPService to handle reload requests - Register reload hook with grace.OnReload() in sftp command This allows administrators to add users or change access policies dynamically by editing the user store file and sending a HUP signal (e.g., 'systemctl reload seaweedfs' or 'kill -HUP '). --- weed/command/sftp.go | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'weed/command') diff --git a/weed/command/sftp.go b/weed/command/sftp.go index ed93e44fe..f1a0d9e09 100644 --- a/weed/command/sftp.go +++ b/weed/command/sftp.go @@ -16,6 +16,7 @@ import ( "github.com/seaweedfs/seaweedfs/weed/sftpd" stats_collect "github.com/seaweedfs/seaweedfs/weed/stats" "github.com/seaweedfs/seaweedfs/weed/util" + "github.com/seaweedfs/seaweedfs/weed/util/grace" ) var ( @@ -148,6 +149,9 @@ func (sftpOpt *SftpOptions) startSftpServer() bool { UserStoreFile: *sftpOpt.userStoreFile, }) + // Register reload hook for HUP signal + grace.OnReload(service.Reload) + // Set up Unix socket if on non-Windows platforms if runtime.GOOS != "windows" { localSocket := *sftpOpt.localSocket -- cgit v1.2.3