diff --git a/components/control/cpp/src/slave.cpp b/components/control/cpp/src/slave.cpp
index fb30b8d2be65abd0e0e16f08e1b34d2a526452f2..8485c825ef8f22acaa345803c8fdef6fbbbcaf35 100644
--- a/components/control/cpp/src/slave.cpp
+++ b/components/control/cpp/src/slave.cpp
@@ -13,12 +13,15 @@ static void netLog(void* user_data, const loguru::Message& message) {
 Slave::Slave(Universe *net, ftl::Configurable *root) {
 	net->bind("restart", []() {
 		LOG(WARNING) << "Remote restart...";
-		exit(1);
+		//exit(1);
+		ftl::exit_code = 1;
+		ftl::running = false;
 	});
 
 	net->bind("shutdown", []() {
 		LOG(WARNING) << "Remote shutdown...";
-		exit(0);
+		//exit(0);
+		ftl::running = false;
 	});
 
 	net->bind("update_cfg", [](const std::string &uri, const std::string &value) {