The IMC is now fully under guardian control. The guardian components are (given by their full guardian identifier):
The paths listed are the fulls paths to the guardian system description modules that are being executed for each guardian process. Given a system identifier
The IFO_IMC manager is the top level control. It instructs SUS_MC2 and ISC_IMC to go to their ACQUIRE states if the IMC is not locked, and then transitions SUS_MC2 to turn on boost filters after ISC_IMC guardian reports that the IMC lock has been achieved. If ISC_IMC looses lock, IFO_IMC sees this and moves SUS_MC2 and ISC_IMC back to their ACQUIRE states.
The primary interface for controlling the processes is their medm screens, which are accessible from the "GRD" menu in the sitemap:
The REQUEST button selects the requested state of the system. The MODE button selects the operational mode of the guardian process. EXEC indicates that it is executing guardian code. The STATUS reflects the guardian process status. In this case, the IFO_IMC guardian is executing the RUN method of the LOCKED state.
The buttons at the upper right allow for displaying the log of the daemon, displaying the current system graph, and editing the underlying system module code.
All three guardian processes are running under the new guardian control infrastructure on h1guardian0:
controls@operator1:~ 0$ guardctrl list IFO_IMC * run: IFO_IMC: (pid 8739) 7805s, want down; run: log: (pid 13060) 78412s ISC_IMC * run: ISC_IMC: (pid 6400) 9332s, want down; run: log: (pid 1346) 66758s SUS_MC2 * run: SUS_MC2: (pid 2208) 66732s, want down; run: log: (pid 2050) 66737s SUS_SR2 * run: SUS_SR2: (pid 32679) 96154s, want down; run: log: (pid 23722) 230173s controls@operator1:~ 0$
The guardctrl
command line interface can be used to start/stop/restart the daemon process, as well as create new ones as needed.
Some immediate todo task for the next week:
There are also an ever-growing list of guardian bugs (not a bad thing at this point, since it means the system is actually being used now) that I will start filling in in the new guardian bugzilla (thanks Jonathan).
All the locking code guardian modules has been committed to the userapps repo at:
/opt/rtcds/userapps/release/ioo/common/guardian/ISC_IMC.py /opt/rtcds/userapps/release/sus/common/guardian/SUS_MC2.py /opt/rtcds/userapps/release/sus/common/guardian/SUS.py /opt/rtcds/userapps/release/sys/common/guardian/IFO_IMC.py
The guardian and cdsutils versions are:
cdsutils and guardian are installed in their proper places in /ligo/apps/linux-x86_64/