diff --git a/main.cpp b/main.cpp
index 4702d62..a1427ca 100644
--- a/main.cpp
+++ b/main.cpp
@@ -91,6 +91,9 @@
     }
     sdbusp = std::make_shared<sdbusplus::asio::connection>(*io, bus);
 
+    auto& loop = eventloop::EventLoop::get();
+    loop.setupSignal();
+
     ipmi::ipmiChannelInit();
     if (channel.size())
     {
@@ -110,7 +113,6 @@
     // Register the phosphor-net-ipmid SOL commands
     sol::command::registerCommands();
 
-    auto& loop = eventloop::EventLoop::get();
     if (loop.setupSocket(sdbusp, channel))
     {
         return EXIT_FAILURE;
diff --git a/sd_event_loop.cpp b/sd_event_loop.cpp
index c7283e0..88fdf2e 100644
--- a/sd_event_loop.cpp
+++ b/sd_event_loop.cpp
@@ -239,7 +239,15 @@
 
 int EventLoop::startEventLoop()
 {
-    // set up boost::asio signal handling
+    startRmcpReceive();
+
+    io->run();
+
+    return EXIT_SUCCESS;
+}
+
+void EventLoop::setupSignal()
+{
     boost::asio::signal_set signals(*io, SIGINT, SIGTERM);
     signals.async_wait([this](const boost::system::error_code& /* error */,
                               int /* signalNumber */) {
@@ -247,12 +255,6 @@
         udpSocket->close();
         io->stop();
     });
-
-    startRmcpReceive();
-
-    io->run();
-
-    return EXIT_SUCCESS;
 }
 
 } // namespace eventloop
diff --git a/sd_event_loop.hpp b/sd_event_loop.hpp
index f580b32..b40782c 100644
--- a/sd_event_loop.hpp
+++ b/sd_event_loop.hpp
@@ -87,6 +87,9 @@
                     std::string iface,
                     uint16_t reqPort = ipmi::rmcpp::defaultPort);
 
+    /** @brief set up boost::asio signal handling */
+    void setupSignal();
+
   private:
     /** @brief async handler for incoming udp packets */
     void handleRmcpPacket();
