Update systemd process supervision authored by Jameson Rollins's avatar Jameson Rollins
# Running the aLIGO RTS processes under systemd
# systemd for AdvLigoRTS
The RTS now includes [systemd](https://freedesktop.org/wiki/Software/systemd) integration for the RCG modules and the various components of the DAQD system. If you're installing the RTS from native debian packaging systemd support is automatically installed.
The AdvLigoRTS now includes [systemd](https://freedesktop.org/wiki/Software/systemd) integration for the RCG modules and the various components of the DAQD system. If you're installing the RTS from native debian packaging systemd support is automatically installed.
## RTS front end models
For RCG models it is recommended to use the `rtcds` command line interface that comes with the `advligorts-rcg` package for building and installing real-time modules, and enabling/starting/stopping the module processes.
Under the hood, the `rtcds` CLI is just issuing commands to systemd to manage things. For general usage it's easier to just use `rtcds`. The following describes what's going on under the hood.
The RTS systemd units use systemd templates. Template units are indicated by the `@` symbol in the unit name. The top
* [`rts@.target`](https://git.ligo.org/cds/advligorts/-/blob/master/support/systemd/rts@.target): top level "target" template for an RTS model. This is the primary unit one would interact with, and it makes sure the following dependent units are in the correct state.
* [`rts-module@.service`](https://git.ligo.org/cds/advligorts/-/blob/master/support/systemd/rts-module@.service): unit that actually loads/unloads the RTS kernel module
* [`rts_module_ctrl`](https://git.ligo.org/cds/advligorts/-/blob/master/support/bin/rts_module_ctrl)
* [`rts-epics@.service`](https://git.ligo.org/cds/advligorts/-/blob/master/support/systemd/rts-epics@.service): EPICS IOC service
* [`rts_epics_exec`](https://git.ligo.org/cds/advligorts/-/blob/master/support/bin/rts_epics_exec)
* [`rts-awgtpman@.service`](https://git.ligo.org/cds/advligorts/-/blob/master/support/systemd/rts-awgtpman@.service): awgtpman service
* [`rts_awgtpman_exec`](https://git.ligo.org/cds/advligorts/-/blob/master/support/bin/rts_awgtpman_exec)
## DAQD
The DAQD components are managed directly with systemd via `systemctl`. Here are the various available services.
The DAQD components are managed directly with systemd via `systemctl`. The various available services are:
* `rts-daqd.service`: the main DAQD service
* [`rts-daqd.service`](support/systemd/rts-daqd.service): the main DAQD service
* `rts-local_dc.service`: the local data concentrator
* `rts-nds.service`: back-end NDS1 data source
* `rts-edc.service`: stand-alone EPICS data recorder
......
......