Blank lines and lines starting with a hash mark (#) are treated as comments and ignored. Long lines can be broken up by putting a backslash at the end of the line and continuing the entry on the next line.
An entry looks like this:
CRONDATE 30 4 1 * *
The key is enclosed in angle brackets, and must be unique for each task. You can choose your key-names as you like, they are only used internally in xymonlaunch to identify each task.
The command is defined by the CMD keyword. This is the full command including any options you want to use for this task. This is required for all tasks.
The DISABLED keyword means that this command is disabled. xymonlaunch will not start this task. It is recommended that you use this to disable standard tasks, instead of removing them or commenting them out. Upgrades to Xymon will add standard tasks back into the file, so unless you have them listed as DISABLED then tasks may re-appear unexpectedly after an upgrade. There is also a corresponding ENABLED keyword, to explicitly enable a task.
The ONHOST keyword tells xymonlaunch that this task should only run on specific hosts. After the ONHOST keyword, you must provide a "regular expression"; if the hostname where xymonlaunch runs matches this expression, then the task will run. If it doesn't match, then the task is treated as if it were DISABLED.
The MAXTIME keyword sets a maximum time that the task may run; if exceeded, xymonlaunch will kill the task. The time is in seconds by default, you can specify minutes, hours or days by adding an "m", "h" or "d" after the number. By default there is no upper limit on how long a taskmay run.
The NEEDS instructs xymonlaunch not to run this task unless the task defined by the NEEDS keyword is already running. This is used e.g. to delay the start of some application until the needed daemons have been started. The task that must be running is defined by its key.
The GROUP keyword can be used to limit the number of tasks that may run simultaneously. E.g. if you are generating multiple pagesets of webpages, you don't want them to run at the same time. Putting them into a GROUP will cause xymonlaunch to delay the start of new tasks, so that only one task will run per group. You can change the limit by defining the group before the tasks, with a "GROUP groupname maxtasks" line.
The INTERVAL keyword defines how often this command is executed. The example shows a command that runs every 5 minutes. If no interval is given, the task is only run once - this is useful for tasks that run continually as daemons - although if the task stops for some reason, then xymonlaunch will attempt to restart it. Intervals can be specified in seconds (if you just put a number there), or in minutes (5m), hours (2h), or days (1d).
The CRONDATE keyword is used for tasks that must run at regular intervals or at a specific time. The time specification is identical to the one used by cron in crontab(5) entries, i.e. a sequence of numbers for minute, hour, day-of-month, month and day-of-week. Three-letter abbreviations in english can be used for the month and day-of-week fields. An asterisk is a wildcard. So in the example above, this job would run once a month, at 4:30 AM on the 1st day of the month.
The ENVFILE setting points to a file with definitions of environment variables. Before running the task, xymonlaunch will setup all of the environment variables listed in this file. Since this is a per-task setting, you can use the same xymonlaunch instance to run e.g. both the server- and client-side Xymon tasks. If this option is not present, then the environment defined to xymonlaunch is used.
The ENVAREA setting modifies which environment variables are loaded, by picking up the ones that are defined for this specific "area". See xymonserver.cfg(5) for information about environment areas.
The LOGFILE setting defines a logfile for the task. xymonlaunch will start the task with stdout and stderr redirected to this file. If this option is not present, then the output goes to the same location as the xymonlaunch output.
The PIDFILE setting defines a pidfile for the task. xymonlaunch will start the task and write the pid to this file.
The SENDHUP option tells xymonlaunch to forward a HUP to the task when it receives one (typically due to being asked to rotate log files by the system, but potentially for any reason). If you're using the --locator functionality and have daemons running directly from tasks.cfg that are listening to channels on other systems, this should be enabled if you want them to rotate logs by local command.