diff --git a/src/python/rtcds/fe_generator/sequencer.py b/src/python/rtcds/fe_generator/sequencer.py
index 0a80c990f2d96b2b8b8fd2b3aec4aeb1672edc1b..b306d60bd0a64646b816abb73fe742bd3c8e619f 100644
--- a/src/python/rtcds/fe_generator/sequencer.py
+++ b/src/python/rtcds/fe_generator/sequencer.py
@@ -42,10 +42,10 @@ class Sequencer(object):
                 self.processes.binds_to(dolphin_drivers.first_service, dolphin_port.start)
 
                 before_world.append(dolphin_port)
-                before_world.append(self.delay(15, "dolphin_port"))
+                before_world.append(self.delay(15, 5, "dolphin_port"))
             before_world.append(dolphin_drivers)
             klog("dolphin drivers added")
-        before_world.append(self.delay(30, "startup"))
+        before_world.append(self.delay(30, 10, "startup"))
         if self.options["HAS_EPICS_ONLY_MODELS"]:
             world.append(self.processes.epics_only_models(self.options["EPICS_ONLY_MODELS"]))
             models = True
@@ -71,9 +71,9 @@ class Sequencer(object):
     def create_cdsrfm_start_sequence(self, front_end_processes, cdsrfm_processes):
         before_world = [
             front_end_processes.dolphin_port(),
-            self.delay(15, "dolphin_port"),
+            self.delay(15, 5, "dolphin_port"),
             front_end_processes.dolphin_drivers(),
-            self.delay(30, "startup"),]
+            self.delay(30, 10, "startup"),]
         world = [
             cdsrfm_processes.module(),
             cdsrfm_processes.epics(),
@@ -103,15 +103,19 @@ class Sequencer(object):
             self.end = unit_name
             self.first_service = unit_name
 
-    def delay(self, time_s, name):
+    def delay(self, start_time_s, stop_time_s, name):
         file_name = f"rts-delay-{name}.service"
         file_path = path.join(self.target_dir, file_name)
         with open(file_path, "wt") as f:
             f.write(f"""[Unit]
-Description=Delay for {time_s} seconds
+Description=Delay for {start_time_s} seconds
 
 [Service]
-ExecStartPre=/bin/sleep {time_s}
-ExecStart=/bin/echo 'finished waiting for {name}'
+Type=oneshot
+RemainAfterExit=yes
+ExecStartPre=/bin/sleep {start_time_s}
+ExecStart=/bin/echo '[startup] finished waiting for {name}'
+ExecStop=/bin/sleep {stop_time_s}
+ExecStopPost=/bin/echo '[shutdown] finished waiting for {name}' 
 """)
         return self.Delay(file_name)