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",