diff --git a/linux/SystemdMeter.c b/linux/SystemdMeter.c index 53ae2d28..cee32318 100644 --- a/linux/SystemdMeter.c +++ b/linux/SystemdMeter.c @@ -310,8 +310,12 @@ static int valueDigitColor(unsigned int value) { static void SystemdMeter_display(ATTR_UNUSED const Object* cast, RichString* out) { char buffer[16]; int len; + int color = METER_VALUE_ERROR; - int color = (systemState && String_eq(systemState, "running")) ? METER_VALUE_OK : METER_VALUE_ERROR; + if (systemState) { + color = String_eq(systemState, "running") ? METER_VALUE_OK : + String_eq(systemState, "degraded") ? METER_VALUE_ERROR : METER_VALUE_WARN; + } RichString_writeAscii(out, CRT_colors[color], systemState ? systemState : "N/A"); RichString_appendAscii(out, CRT_colors[METER_TEXT], " (");