From 456b71d3953d5e6efb5314e798093f1fc10cf3f4 Mon Sep 17 00:00:00 2001 From: MadDogOwner Date: Wed, 14 Jan 2026 16:38:51 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E5=AF=B9=20fnOS=20?= =?UTF-8?q?=E7=9A=84=E6=A3=80=E6=B5=8B=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: MadDogOwner --- monitoring/unit/os_linux.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/monitoring/unit/os_linux.go b/monitoring/unit/os_linux.go index 3caa991..63e11df 100644 --- a/monitoring/unit/os_linux.go +++ b/monitoring/unit/os_linux.go @@ -26,6 +26,11 @@ func OSName() string { return synologyName } + // Check if it's a fnOS + if fnOSName := detectFnOS(); fnOSName != "" { + return fnOSName + } + file, err := os.Open("/etc/os-release") if err != nil { return "Linux" @@ -47,6 +52,21 @@ func OSName() string { return "Linux" } +func detectFnOS() string { + if info, err := os.Stat("/usr/trim/BUILD_VERSION"); err == nil && !info.IsDir() { + if data, err := os.ReadFile("/usr/trim/BUILD_VERSION"); err == nil { + // format like "1.1.11" + if version := strings.TrimSpace(string(data)); version != "" { + return "fnOS " + version + } + } + } + if info, err := os.Stat("/usr/trim"); err == nil && info.IsDir() { + return "fnOS" + } + return "" +} + func detectSynology() string { synologyFiles := []string{ "/etc/synoinfo.conf",