diff --git a/src/srvcfg_manager.cpp b/src/srvcfg_manager.cpp
index 2094366..a7cb90c 100644
--- a/src/srvcfg_manager.cpp
+++ b/src/srvcfg_manager.cpp
@@ -17,7 +17,6 @@
 
 #include <boost/asio/detached.hpp>
 #include <boost/asio/spawn.hpp>
-
 #ifdef USB_CODE_UPDATE
 #include <cereal/archives/json.hpp>
 #include <cereal/types/tuple.hpp>
@@ -25,8 +24,10 @@
 
 #include <cstdio>
 #endif
-
 #include <fstream>
+#ifdef PERSIST_SETTINGS
+#include <nlohmann/json.hpp>
+#endif
 #include <regex>
 
 extern std::unique_ptr<boost::asio::steady_timer> timer;
@@ -47,6 +48,11 @@
 static constexpr const char* systemdOverrideUnitBasePath =
     "/etc/systemd/system/";
 
+#ifdef PERSIST_SETTINGS
+static constexpr const char* persistDataFileVersionStr = "Version";
+static constexpr const size_t persistDataFileVersion = 1;
+#endif
+
 #ifdef USB_CODE_UPDATE
 static constexpr const char* usbCodeUpdateStateFilePath =
     "/var/lib/srvcfg_manager";
@@ -282,6 +288,7 @@
                 {
                     registerProperties();
                 }
+                writeStateFile();
             }
             catch (const std::exception& e)
             {
@@ -317,6 +324,21 @@
     }
 }
 
+void ServiceConfig::writeStateFile()
+{
+#ifdef PERSIST_SETTINGS
+    nlohmann::json stateMap;
+    stateMap[persistDataFileVersionStr] = persistDataFileVersion;
+    stateMap[srvCfgPropMasked] = unitMaskedState;
+    stateMap[srvCfgPropEnabled] = unitEnabledState;
+    stateMap[srvCfgPropRunning] = unitRunningState;
+
+    std::ofstream file(stateFile);
+    file << stateMap;
+    file.close();
+#endif
+}
+
 ServiceConfig::ServiceConfig(
     sdbusplus::asio::object_server& srv_,
     std::shared_ptr<sdbusplus::asio::connection>& conn_,
@@ -330,6 +352,7 @@
     isSocketActivatedService = serviceObjectPath.empty();
     instantiatedUnitName = baseUnitName + addInstanceName(instanceName, "@");
     updatedFlag = 0;
+    stateFile = srvDataBaseDir + instantiatedUnitName;
     queryAndUpdateProperties();
     return;
 }
@@ -502,6 +525,8 @@
             return;
         }
         updateInProgress = true;
+        // Ensure our persistent files are updated with changes
+        writeStateFile();
         boost::asio::spawn(
             conn->get_io_context(),
             [this](boost::asio::yield_context yield) {
