The world of CFLT Daemons
The panoply of CFLT Daemons keeps various programs
running that are important for the operation of the CFLT. We use the
ZMP Daemon system for all of our Daemonic needs.
On each node there is a single CFLT Daemon devoted to monitoring
several child application processes. ZMP Daemon commands (zmp_daemon_client)
are used to control the starting and stopping of the child processes. There
are scripts and command files available to make starting and stopping
the children easier for the user. (Also see the "AROX" and "ARMS"
utilities for a user interface to the Daemons.) The "daemon" program
on the cflt accounts on various platforms provides the most convenient
way to start and stop daemon children.
Here are the various Daemons and the children they watch. Also included
are the daemon child description file (extension .appl or .APPL) which
gives the command script name and output log file name. This file
can be found in the common daemon disk area indicated. For the nodes
CFLT02, zaxp10, and ZWS016, there exists the flush
command which will kill all daemon children on that machine as well
as the daemon itself.
- CFLT/.CFLT on CFLT02
Area: Disk$CFLT:[Test_Trig.Daemon]
Daemon startup: START_CFLT_DAEMON
- CFLT/COMPONENT.CFLT -- interface between the CFLT
Run Control program and the main Zeus/CDAQ run
control.
MONITOR_COMPONENT.APPL
- CFLT/INFOSERVER.CFLT -- provides real-time information
on the status of the CFLT Run Control and related
parameters in machine independent network format.
See Disk$CFLT:[Test_Trig.InfoServer]CFLTRun.h and CFLTPar.h
for the information provided.
MONITOR_INFOSERVER.APPL
- CFLT/RSUM_FILE_SERVER.CFLT -- provides run summaries
to the main Zeus/CDAQ run summary collator at the end of
run time.
MONITOR_RSUM_FILE_SERVER.APPL
- CFLT/REMOTE_SERVER.CFLT -- Remote communications server.
MONITOR_REMOTE_SERVER.APPL
- CFLT/MONITOR.CFLT -- Monitors CFLT processes and sends
message to experts (DISK$ONLINE:[CFLT]CFLT_MONITOR.DIS) when
applications crash and restart or are simply missing.
MONITOR_MONITOR.APPL
- CFLT/WWW.CFLT -- The CFLT Hardware machine Web
server.
MONITOR_WWW.APPL
- CFLT/.CFLT_1 on zaxp10.desy.de
Area: /usr/users/cflt/daemon
Daemon startup: start_cflt_daemon
- CFLT/SIMCFLT_EVENT.CFLT_1 -- Flink pipe event server
for simCFLT. This process requests event samples from
the Flink server on zaxp11 and feeds them to a pipe read
by the simCFLT eaze job.
monitor_simcflt_event.appl
- CFLT/SIMCFLT_RUN.CFLT_1 -- simCFLT executable eaze-type
job. This program reads in event samples from the Flink
pipe and runs ZgAna and compares the expected CFLT results
with those from the hardware. It produces histograms
that are mapped to the shared memory "SIMC".
monitor_simcflt_run.appl
- CFLTP/.CFLTP on ZWS016
Area: Disk$Online:[CFLTP.Daemon]
Daemon startup: START_CFLTP_DAEMON
- CFLTP/CFLTPDQM_HIST.CFLTP -- program to fill online hbook
histograms with data from the CFLTP OS9; creates the global section
CFLTPDQM
MONITOR_CFLTPDQM_HIST.APPL
- CFLTP/CFLTPDQM_MONITOR.CFLTP -- listens for commands from the
CFLT Run Control: when to write the global section for physics runs to a file;
and when to reset the CFLTPDQM histograms
MONITOR_CFLTPDQM_MONITOR.APPL
* NB: On the cflt OS9, the ZMP Daemon and ZHP server are not currently fully
debugged by the CDAQ group. Permanent installation pending as of 10-Oct-1997.
Hints on summoning and ridding Daemons
Never directly kill the Daemon-controlled processes via a system or shell commands,
since the Daemon will simply restart them. Use the Daemon client commands to start
and stop the application processes instead. The syntax of these commands
looks like:
- zmp_daemon_client -dZEUS_APPL_CONTROL -tTarget "-cCommand Instance"
The daemon program will send these commands for you.
For the CFLT Daemons, possible Target values are CFLT, CFLT_1, CFLT_2,
or CFLT_3. This specifies the ZMP Daemon running on a particular node.
The possible Command values are "OPEN" (start application) or "CLOSE"
(stop application) which act on the application processes specified
by the Instance. The value of Instance depends on the Daemon; for
example, the CFLT_3 Daemon can accept values "CFLT_CAL_SERVER" or
"CFLTP_LOADER". Another useful Command value is "SYMBS" which
will dump the state of all applications under the Daemon control (no
Instance value should be specified in this case).
In general, the ZMP Daemon process(es) should only be started at
node boot time and never killed. However, if additions or
deletions to the applications are required, you may stop and
restart the ZMP Daemons. However, be sure to never
start two Daemons at the same time, or there will be hell to pay!
Hint: People often confuse the ZMP Daemon program
and the Daemon Children application processes. The ZMP
Daemon controls the child processes. The ZMP Daemon runs
all the time; the Daemon Children are started and stopped only
by the ZMP Daemon. Component experts start and stop controlled
applications (Daemon Children) by sending commands to the ZMP
Daemon using the ZMP communications software. After receiving
a command, the ZMP Daemon handles the process control of
the Daemon Child
Last updated 2000 09
T. Wildschek
W. Badgett