diff --git a/physical.cpp b/physical.cpp
index c2be4fa..67f0a90 100644
--- a/physical.cpp
+++ b/physical.cpp
@@ -38,6 +38,8 @@
         auto percentScale = periodMs / 100;
         this->dutyOn(delayOn / percentScale);
         this->period(periodMs);
+        sdbusplus::xyz::openbmc_project::Led::server::Physical::state(
+            Action::Blink);
     }
     else
     {
diff --git a/sysfs.cpp b/sysfs.cpp
index 277710d..b1ea456 100644
--- a/sysfs.cpp
+++ b/sysfs.cpp
@@ -34,7 +34,7 @@
 {
     std::string content;
     std::ifstream file(path);
-    file >> content;
+    std::getline(file, content);
     return content;
 }
 
@@ -69,7 +69,30 @@
 
 std::string SysfsLed::getTrigger()
 {
-    return getSysfsAttr<std::string>(root / attrTrigger);
+    // Example content for `/sys/class/leds/<led_name>/trigger`:
+    //
+    // * `[none] timer heartbeat default-on`
+    // * `none [timer] heartbeat default-on`
+    //
+    // Refer to:
+    //
+    // * https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/ABI/testing/sysfs-class-led?h=v6.6#n71
+    // * https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/ABI/stable/sysfs-block?h=v6.6#n558
+    std::string triggerLine = getSysfsAttr<std::string>(root / attrTrigger);
+    size_t start = triggerLine.find_first_of('[');
+    size_t end = triggerLine.find_first_of(']');
+    if (start >= end || start == std::string::npos || end == std::string::npos)
+    {
+        return "none";
+    }
+
+    std::string rc = triggerLine.substr(start + 1, end - start - 1);
+    if (rc.empty())
+    {
+        return "none";
+    }
+
+    return rc;
 }
 
 void SysfsLed::setTrigger(const std::string& trigger)
diff --git a/test/physical.cpp b/test/physical.cpp
index 24c2a70..b6fb35b 100644
--- a/test/physical.cpp
+++ b/test/physical.cpp
@@ -138,7 +138,7 @@
     EXPECT_CALL(led, getDelayOn()).WillOnce(Return(500));
     EXPECT_CALL(led, getDelayOff()).WillOnce(Return(500));
     phosphor::led::Physical phy(bus, ledObj, led);
-    EXPECT_EQ(phy.state(), Action::Off);
+    EXPECT_EQ(phy.state(), Action::Blink);
 }
 
 TEST(Physical, off)
diff --git a/test/sysfs.cpp b/test/sysfs.cpp
index 3e5172c..c949daa 100644
--- a/test/sysfs.cpp
+++ b/test/sysfs.cpp
@@ -93,11 +93,19 @@
 
 TEST(Sysfs, getTrigger)
 {
-    constexpr auto trigger = "none";
     FakeSysfsLed fsl = FakeSysfsLed::create();
 
-    fsl.setTrigger(trigger);
-    ASSERT_EQ(trigger, fsl.getTrigger());
+    // We need to set the complete attribute value in UT, Because the LED driver
+    // is not called in UT to automatically set `none` to `[none] xxx yyy`
+    fsl.setTrigger("[none] timer heartbeat default-on");
+    ASSERT_EQ("none", fsl.getTrigger());
+}
+
+TEST(Sysfs, getTriggerBlink)
+{
+    FakeSysfsLed fsl = FakeSysfsLed::create();
+    fsl.setTrigger("none [timer] heartbeat default-on");
+    ASSERT_EQ("timer", fsl.getTrigger());
 }
 
 TEST(Sysfs, getDelayOn)
