Skip to content
Snippets Groups Projects
Commit fa1bb0b5 authored by Erik von Reis's avatar Erik von Reis
Browse files

startup sequencer: delay units now delay during shutdown

delay units now delay some amount during shutdown.
the delay during shutdown is configured as a separate value from the startup delay
parent 59e90c27
No related branches found
No related tags found
4 merge requests!439RCG 5.0 release fro deb 10,!348Merge branch4.2 into master,!347Merge branch 'master' into branch-4.2-merge-with-master,!337startup sequencer: delay units now delay during shutdown
......@@ -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)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment