This information is likely unclear, but can be the basis for future conversations.

procmgr commands

Use these in /reg/g/pcds/dist/pds/tmo/scripts directory where the *.cnf files live.

  • procmgr status <cnf-file>
  • procmgr start <cnf-file>
  • procmgr stop <cnf-file>
  • procmgr restart <cnf-file> (does both a stop and a start)
  • procmgr stopall <cnf-file>

Main CNF File

The file <hutchname>.cnf (e.g. tmo.cnf) contains a list of all possible detectors that can be included in the data acquisition.  This is a python script, although we try to keep them simple (e.g. no imports, subroutines).

Supplemental "Long-Lived" HSD and XPM CNF Files

In addition to the hutch .cnf file described above, there are additional "long lived" cnf files: neh-base.cnf.  neh-base.cnf manages processes controlling the timing system boards ("XPM", eXperiment Partition Master) while hsd.cnf controls processes that are used to manage high-speed-digitizers, for hutches that have those.

Processes in tmo.cnf are short-lived, meaning that the "procmgr stop/start" commands function as you would expect.  But the processes in neh-base.cnf and hsd.cnf are long-lived: "stop" doesn’t stop them (but "stopall" does).  Long-lived is indicated in the .cnf file by having a hard-coded "port" number on the line that defines the process.

For long-lived processes you have to do a little more to stop/start them, in particular:

procmgr stop <cnf-file> <uniqueID>   (uniqueID is the second column from procmgr status)
procmgr start <cnf-file> <uniqueID>

Sometimes it is necessary to restart an hsdioc process (e.g. if the hsd goes into "test pattern" mode).  To do this:

  • look in tmo.cnf to see which hsdioc manages this hsd channel.  For example this line {host:'drp-neh-cmp018', id:'hsd_5', flags:'spu', env:epics_env, cmd:drp_cmd0+f' -D hsd -k hsd_epics_prefix={hsd_epics}_3D:B'} implies that hsd_5 is managed by the hsdioc labelled "3D" (each hsdioc manages 2 hsd channels, and "A" and a "B" channel)
  • look for host/post number to telnet to by doing "procmgr status hsd.cnf | grep hsdioc"
  • look for a line like: "daq-tmo-hsd-01 hsdioc_3d RUNNING 3835 29088 hsd134PVs -E -P DAQ:TMO:HSD:1_3D -d /dev/pcie_adc_3d"
  • do "telnet daq-tmo-hsd-01 29088"
  • hit ^X to kill the hsdioc process
  • hit ^X again to restart it
  • may have to configure (or even restart hsdioc) again.  (we should make the system tolerate hsdioc-restarts better in the future).


Example: Restarting hsdiocs 3D and 5E using procmgr
(ps-4.3.2) tmo-daq:daq> procmgr status hsd.cnf
/cds/home/opr/tmoopr/git/lcls2_060521/install/bin/procmgr: using config file 'hsd.cnf'
Not running.
Host           UniqueID     Status     PID     PORT   Command+Args
daq-tmo-hsd-01 hsdioc_1a    RUNNING    67678   29086  hsd134PVs -P DAQ:TMO:HSD:1_1A -d /dev/pcie_adc_1a
daq-tmo-hsd-01 hsdioc_1b    RUNNING    67677   29085  hsd134PVs -P DAQ:TMO:HSD:1_1B -d /dev/pcie_adc_1b
daq-tmo-hsd-01 hsdioc_3d    RUNNING    67711   29088  hsd134PVs -P DAQ:TMO:HSD:1_3D -d /dev/pcie_adc_3d
daq-tmo-hsd-01 hsdioc_3e    RUNNING    67695   29087  hsd134PVs -P DAQ:TMO:HSD:1_3E -d /dev/pcie_adc_3e
daq-tmo-hsd-01 hsdioc_5e    RUNNING    67727   29089  hsd134PVs -P DAQ:TMO:HSD:1_5E -d /dev/pcie_adc_5e
daq-tmo-hsd-01 hsdioc_b2    RUNNING    67759   29091  hsd134PVs -P DAQ:TMO:HSD:1_B2 -d /dev/pcie_adc_b2
daq-tmo-hsd-01 hsdioc_da    RUNNING    74783   29090  hsd134PVs -P DAQ:TMO:HSD:1_DA -d /dev/pcie_adc_da
drp-neh-ctl002 hsdpvs_1a_a  RUNNING    194646  29073  hsdpvs -P DAQ:TMO:HSD:1_1A:A
drp-neh-ctl002 hsdpvs_1a_b  RUNNING    194648  29074  hsdpvs -P DAQ:TMO:HSD:1_1A:B
drp-neh-ctl002 hsdpvs_1b_a  RUNNING    194645  29071  hsdpvs -P DAQ:TMO:HSD:1_1B:A
drp-neh-ctl002 hsdpvs_1b_b  RUNNING    194647  29072  hsdpvs -P DAQ:TMO:HSD:1_1B:B
drp-neh-ctl002 hsdpvs_3d_a  RUNNING    194649  29077  hsdpvs -P DAQ:TMO:HSD:1_3D:A
drp-neh-ctl002 hsdpvs_3d_b  RUNNING    194652  29078  hsdpvs -P DAQ:TMO:HSD:1_3D:B
drp-neh-ctl002 hsdpvs_3e_a  RUNNING    194650  29075  hsdpvs -P DAQ:TMO:HSD:1_3E:A
drp-neh-ctl002 hsdpvs_3e_b  RUNNING    194651  29076  hsdpvs -P DAQ:TMO:HSD:1_3E:B
drp-neh-ctl002 hsdpvs_5e_a  RUNNING    194653  29079  hsdpvs -P DAQ:TMO:HSD:1_5E:A
drp-neh-ctl002 hsdpvs_5e_b  RUNNING    194654  29080  hsdpvs -P DAQ:TMO:HSD:1_5E:B
drp-neh-ctl002 hsdpvs_b2_a  RUNNING    194689  29083  hsdpvs -P DAQ:TMO:HSD:1_B2:A
drp-neh-ctl002 hsdpvs_b2_b  RUNNING    194811  29084  hsdpvs -P DAQ:TMO:HSD:1_B2:B
drp-neh-ctl002 hsdpvs_da_a  RUNNING    194655  29081  hsdpvs -P DAQ:TMO:HSD:1_DA:A
drp-neh-ctl002 hsdpvs_da_b  RUNNING    194673  29082  hsdpvs -P DAQ:TMO:HSD:1_DA:B
(ps-4.3.2) tmo-daq:daq> 
(ps-4.3.2) tmo-daq:daq> procmgr stop hsd.cnf hsdioc_3d hsdioc_5e
/cds/home/opr/tmoopr/git/lcls2_060521/install/bin/procmgr: using config file 'hsd.cnf' to stop
(ps-4.3.2) tmo-daq:daq> 
(ps-4.3.2) tmo-daq:daq> procmgr status hsd.cnf
/cds/home/opr/tmoopr/git/lcls2_060521/install/bin/procmgr: using config file 'hsd.cnf'
Not running.
Host           UniqueID     Status     PID     PORT   Command+Args
daq-tmo-hsd-01 hsdioc_1a    RUNNING    67678   29086  hsd134PVs -P DAQ:TMO:HSD:1_1A -d /dev/pcie_adc_1a
daq-tmo-hsd-01 hsdioc_1b    RUNNING    67677   29085  hsd134PVs -P DAQ:TMO:HSD:1_1B -d /dev/pcie_adc_1b
daq-tmo-hsd-01 hsdioc_3d    NOCONNECT  -       29088  hsd134PVs -P DAQ:TMO:HSD:1_3D -d /dev/pcie_adc_3d
daq-tmo-hsd-01 hsdioc_3e    RUNNING    67695   29087  hsd134PVs -P DAQ:TMO:HSD:1_3E -d /dev/pcie_adc_3e
daq-tmo-hsd-01 hsdioc_5e    NOCONNECT  -       29089  hsd134PVs -P DAQ:TMO:HSD:1_5E -d /dev/pcie_adc_5e
daq-tmo-hsd-01 hsdioc_b2    RUNNING    67759   29091  hsd134PVs -P DAQ:TMO:HSD:1_B2 -d /dev/pcie_adc_b2
daq-tmo-hsd-01 hsdioc_da    RUNNING    74783   29090  hsd134PVs -P DAQ:TMO:HSD:1_DA -d /dev/pcie_adc_da
drp-neh-ctl002 hsdpvs_1a_a  RUNNING    194646  29073  hsdpvs -P DAQ:TMO:HSD:1_1A:A
drp-neh-ctl002 hsdpvs_1a_b  RUNNING    194648  29074  hsdpvs -P DAQ:TMO:HSD:1_1A:B
drp-neh-ctl002 hsdpvs_1b_a  RUNNING    194645  29071  hsdpvs -P DAQ:TMO:HSD:1_1B:A
drp-neh-ctl002 hsdpvs_1b_b  RUNNING    194647  29072  hsdpvs -P DAQ:TMO:HSD:1_1B:B
drp-neh-ctl002 hsdpvs_3d_a  RUNNING    194649  29077  hsdpvs -P DAQ:TMO:HSD:1_3D:A
drp-neh-ctl002 hsdpvs_3d_b  RUNNING    194652  29078  hsdpvs -P DAQ:TMO:HSD:1_3D:B
drp-neh-ctl002 hsdpvs_3e_a  RUNNING    194650  29075  hsdpvs -P DAQ:TMO:HSD:1_3E:A
drp-neh-ctl002 hsdpvs_3e_b  RUNNING    194651  29076  hsdpvs -P DAQ:TMO:HSD:1_3E:B
drp-neh-ctl002 hsdpvs_5e_a  RUNNING    194653  29079  hsdpvs -P DAQ:TMO:HSD:1_5E:A
drp-neh-ctl002 hsdpvs_5e_b  RUNNING    194654  29080  hsdpvs -P DAQ:TMO:HSD:1_5E:B
drp-neh-ctl002 hsdpvs_b2_a  RUNNING    194689  29083  hsdpvs -P DAQ:TMO:HSD:1_B2:A
drp-neh-ctl002 hsdpvs_b2_b  RUNNING    194811  29084  hsdpvs -P DAQ:TMO:HSD:1_B2:B
drp-neh-ctl002 hsdpvs_da_a  RUNNING    194655  29081  hsdpvs -P DAQ:TMO:HSD:1_DA:A
drp-neh-ctl002 hsdpvs_da_b  RUNNING    194673  29082  hsdpvs -P DAQ:TMO:HSD:1_DA:B
(ps-4.3.2) tmo-daq:daq> 
(ps-4.3.2) tmo-daq:daq> procmgr start hsd.cnf hsdioc_3d hsdioc_5e
/cds/home/opr/tmoopr/git/lcls2_060521/install/bin/procmgr: using config file 'hsd.cnf' to start
(ps-4.3.2) tmo-daq:daq> 
(ps-4.3.2) tmo-daq:daq> procmgr status hsd.cnf
/cds/home/opr/tmoopr/git/lcls2_060521/install/bin/procmgr: using config file 'hsd.cnf'
Not running.
Host           UniqueID     Status     PID     PORT   Command+Args
daq-tmo-hsd-01 hsdioc_1a    RUNNING    67678   29086  hsd134PVs -P DAQ:TMO:HSD:1_1A -d /dev/pcie_adc_1a
daq-tmo-hsd-01 hsdioc_1b    RUNNING    67677   29085  hsd134PVs -P DAQ:TMO:HSD:1_1B -d /dev/pcie_adc_1b
daq-tmo-hsd-01 hsdioc_3d    RUNNING    64378   29088  hsd134PVs -P DAQ:TMO:HSD:1_3D -d /dev/pcie_adc_3d
daq-tmo-hsd-01 hsdioc_3e    RUNNING    64377   29087  hsd134PVs -P DAQ:TMO:HSD:1_3E -d /dev/pcie_adc_3e
daq-tmo-hsd-01 hsdioc_5e    RUNNING    65664   29089  hsd134PVs -P DAQ:TMO:HSD:1_5E -d /dev/pcie_adc_5e
daq-tmo-hsd-01 hsdioc_b2    RUNNING    67759   29091  hsd134PVs -P DAQ:TMO:HSD:1_B2 -d /dev/pcie_adc_b2
daq-tmo-hsd-01 hsdioc_da    RUNNING    74783   29090  hsd134PVs -P DAQ:TMO:HSD:1_DA -d /dev/pcie_adc_da
drp-neh-ctl002 hsdpvs_1a_a  RUNNING    194646  29073  hsdpvs -P DAQ:TMO:HSD:1_1A:A
drp-neh-ctl002 hsdpvs_1a_b  RUNNING    194648  29074  hsdpvs -P DAQ:TMO:HSD:1_1A:B
drp-neh-ctl002 hsdpvs_1b_a  RUNNING    194645  29071  hsdpvs -P DAQ:TMO:HSD:1_1B:A
drp-neh-ctl002 hsdpvs_1b_b  RUNNING    194647  29072  hsdpvs -P DAQ:TMO:HSD:1_1B:B
drp-neh-ctl002 hsdpvs_3d_a  RUNNING    194649  29077  hsdpvs -P DAQ:TMO:HSD:1_3D:A
drp-neh-ctl002 hsdpvs_3d_b  RUNNING    194652  29078  hsdpvs -P DAQ:TMO:HSD:1_3D:B
drp-neh-ctl002 hsdpvs_3e_a  RUNNING    194650  29075  hsdpvs -P DAQ:TMO:HSD:1_3E:A
drp-neh-ctl002 hsdpvs_3e_b  RUNNING    194651  29076  hsdpvs -P DAQ:TMO:HSD:1_3E:B
drp-neh-ctl002 hsdpvs_5e_a  RUNNING    194653  29079  hsdpvs -P DAQ:TMO:HSD:1_5E:A
drp-neh-ctl002 hsdpvs_5e_b  RUNNING    194654  29080  hsdpvs -P DAQ:TMO:HSD:1_5E:B
drp-neh-ctl002 hsdpvs_b2_a  RUNNING    194689  29083  hsdpvs -P DAQ:TMO:HSD:1_B2:A
drp-neh-ctl002 hsdpvs_b2_b  RUNNING    194811  29084  hsdpvs -P DAQ:TMO:HSD:1_B2:B
drp-neh-ctl002 hsdpvs_da_a  RUNNING    194655  29081  hsdpvs -P DAQ:TMO:HSD:1_DA:A
drp-neh-ctl002 hsdpvs_da_b  RUNNING    194673  29082  hsdpvs -P DAQ:TMO:HSD:1_DA:B
(ps-4.3.2) tmo-daq:daq>
  • No labels