diff --git a/src/CPUSensorMain.cpp b/src/CPUSensorMain.cpp
index 7231453..5ad7b9b 100644
--- a/src/CPUSensorMain.cpp
+++ b/src/CPUSensorMain.cpp
@@ -59,7 +59,7 @@
     }
 };
 
-static constexpr const char* peciDev = "/dev/peci-0";
+static constexpr const char* peciDev = "/dev/peci-";
 static constexpr const unsigned int rankNumMax = 8;
 
 namespace fs = std::experimental::filesystem;
@@ -357,17 +357,19 @@
                boost::container::flat_set<CPUConfig>& configs,
                std::shared_ptr<sdbusplus::asio::connection>& dbusConnection)
 {
-    auto file = open(peciDev, O_RDWR);
-    if (file < 0)
-    {
-        std::cerr << "unable to open " << peciDev << "\n";
-        std::exit(EXIT_FAILURE);
-    }
-
     size_t rescanDelaySeconds = 0;
     bool keepPinging = false;
+
     for (CPUConfig& config : configs)
     {
+        std::string peciDevPath = peciDev + std::to_string(config.bus);
+        auto file = open(peciDevPath.c_str(), O_RDWR | O_CLOEXEC);
+        if (file < 0)
+        {
+            std::cerr << "unable to open " << peciDevPath << "\n";
+            std::exit(EXIT_FAILURE);
+        }
+
         State state;
         struct peci_ping_msg msg;
         msg.addr = config.addr;
@@ -410,6 +412,8 @@
             state = State::OFF;
         }
 
+        close(file);
+
         if (config.state != state)
         {
             if (config.state == State::OFF)
@@ -448,8 +452,6 @@
         }
     }
 
-    close(file);
-
     if (rescanDelaySeconds)
     {
         std::this_thread::sleep_for(std::chrono::seconds(rescanDelaySeconds));
