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

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

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
The monitor service daemon