Linux Virtual Delivery Agent

The monitor service daemon

The monitor service, ctxmonitord, is a daemon that monitors the health status of the Linux VDA. It consists of three modules:

  • Key process monitor module: This module delegates Systemd to automatically restart key services upon unexpected failures, periodically scans and records the status of target processes, and ensures timely cleanup of Xorg residuals. Logs are stored in /var/log/xdl/ms.log.
  • XDPing integration module: This module periodically executes XDPing analysis and backup tasks. All output from these tasks can be found in /var/log/xdl/msxdping.log.
  • Linux VDA self-update module: For more information, see Linux VDA self-update through Azure.

Configuration

By default, the monitor service ctxmonitord starts automatically when you start the VDA. With administrator privileges, you can configure it through /etc/xdl/ctxmonitord.conf and /etc/xdl/whitelist.conf.

ctxmonitord.conf

This configuration file specifies the behaviors of the monitor service ctxmonitord and its modules. By default, it is configured as follows:

     ; This is the configuration file for ctxmonitord service  


; Section 'service' configures the key process monitor module
[service]
MonitorEnable=true     ; true or false
DetectInterval=300      ; in seconds, minimum is 60

; Section 'xdping' configures the XDPing integration module
[xdping]
XdpingEnable=true      ; true or false
AnalysisInterval=600    ; in seconds, minimum is 60, 0 means disable
BackupInterval=1        ; in days, 0 means disable

; Section 'rules' configures the rules about how to monitor each key process
; Each rule should be named as rules.<ProcessName> where <ProcessName> is the name of the process to be monitored
; 'ProcessName' should be the name of the target process that is picked up from whitelist.conf
; 'MonitorType' should be 'HealthCheck' or 'ResidueCleanup'. All 'MonitorType' should be 'HealthCheck' except for 'Xorg'
[rules]
[rules.ctxhdx]
ProcessName=ctxhdx
MonitorType=HealthCheck

[rules.ctxvda]
ProcessName=ctxvda
MonitorType=HealthCheck

[rules.ctxjproxy]
ProcessName=ctxjproxy
MonitorType=HealthCheck

[rules.ctxpolicyd]
ProcessName=ctxjproxy
MonitorType=HealthCheck

[rules.ctxlogd]
ProcessName=ctxlogd
MonitorType=HealthCheck

[rules.xorg]
ProcessName=Xorg
MonitorType=ResidueCleanup
<!--NeedCopy-->

whitelist.conf

This configuration file specifies the white list of the target processes to monitor. The target services specified in the ctxmonitord.conf file must also be listed in the whitelist.conf file. By default, it is configured as follows:

ctxhdx
ctxvda
ctxjproxy
ctxlogd
ctxcdm
ctxcups
ctxpolicyd
ctxusbsd
ctxceip
ctxsdcd
ctxrunatboot
ctxgdtd
ctxbcrd
ctxfidod
ctxpfwd
ctxwcamsd
ctxcertmgr
ctxscardsd  # Except for SLES
ctxfedsd    # Only for RHEL 8/9
Xorg
<!--NeedCopy-->

Note:

  • To make your changes in the ctxmonitord.conf and whitelist.conf files take effect, run the systemctl restart ctxmonitord command to restart the monitor service daemon.

  • To configure how services restart upon unexpected failures, edit the /usr/lib/systemd/system/ctx*.service file. For example, the following are the default restart options:

     Restart=on-failure
     RestartSec=5
     StartLimitInterval=60
     StartLimitBurst=3
     <!--NeedCopy-->
    
The monitor service daemon