• Antelope Release 5.10 Linux CentOS release 7.6.1810 (Core) 3.10.0 2020-05-12

 

NAME

rtexec - real time data acquisition system executive

SYNOPSIS

rtexec [-cdDfknstvx] [-q minutes] [-r minutes]
                [-u user] [-w whyfile] [comment]

DESCRIPTION

rtexec starts up, shuts down, and monitors the operation of the real time data acquisition system. Typically, it performs the following operations:

If a task dies, it is restarted automatically. If the rtexec.pf parameter file changes, it is reread. If any task has been added or deleted, or its command line changed, it is started, restarted, or killed as appropriate. Any crontab changes are incorporated.

If the Defines or Env or Limit arrays in rtexec.pf environment change, all the tasks are restarted.

OPTIONS

Any optional comment on the command line is recorded in the log.

FILES

rtexec typically runs in a directory with a particular organization; the typical directories are described below. This directory and file structure is only the default organization. The directories can be rearranged as desired by modifying the appropriate parameter files.

ENVIRONMENT

The environment for rtexec and tasks rtexec runs is specified in the parameter file.

PARAMETER FILE

The execution of the real time system is largely dictated by rtexec's parameter file.

Resource Limits

Parameters used by rtm

Some parameters are kept in rtexec.pf only because it's a convenient central location, not because they're used by rtexec. Some parameters are shared by rtexec and rtm. Following are the rtm parameters; please refer to rtm(1) for a description:

In addition, the network code used by rtreport(1) and rtsys(1) can be specified in rtexec.pf; the default is to use the net code from the first entry in the network table.

EXAMPLE


# start a real time system, first saving the old log files
# to a sub-directory.
% rtexec -ts

# kill a running real time system
% rtexec -k

DIAGNOSTICS

rtexec is generally pretty verbose, logging most changes to the file logs/rtexec. Fatal errors include the following:

SEE ALSO

rtexec_setup(5)
rt(5)
rtsetup(8)
pf(3), pfecho(1)
crontab(1)
rtincident(1)
rtsnapshot(1)
rtmail(1)
rtmanage(1)
is_idle(1)
install_boot_scripts(1)

BUGS AND CAVEATS

As of Mac OS X Yosemite 10.10.3, Apple prohibits any rtexec started as a non-root user from making the changes it needs to survive user logout without loss of critical services. Therefore, if you start up rtexec from a non-privileged account, it will shutdown and exit when you log out. To prevent this, you must either startup rtexec as root (which in turn requires that root own the directory in which rtexec is running, as well as the contents of that directory), or you must install a turnkey boot script, per the man-page install_boot_scripts(1).

Presumably, many cron jobs may run soon after midnight UTC. However, local times in the hour after switches to and from Daylight savings time should be avoided.

rtexec attempts to save and report on incidents which create a core file. (The stock rtexec.pf unlimits coredumpsize so that core files should be created). It expects to find the core file in the same directory as rtexec.pf. However, some systems are configured so that the core files are saved in some alternate location. MacOS X drops core files into /cores. In these cases, rtexec does not find the core file, and hence can't generate stack traces or other useful information from the core file. A few programs (eg, orbxfer2) may also move to a different directory; rtexec does not find these core files either.

The names of tasks are completely arbitrary; however, it has proven convenient to use this convention: the task name is the executable name, potentially followed by an underscore and a qualifier. For instance, the name of a single orb2orb task would be orb2orb. If there were multiple orb2orb tasks, the names might be distinguished by qualifiers, e.g.: orb2orb_AZ, orb2orb_cslb, etc.

rtexec does not shut down running cron tasks at exit. This may or may not be the desired behavior, depending on the cron task in question. If rtexec shuts down while a cron task is still running, the rtsys/rtsys.cron table will not be updated with the appropriate last_end value. To clear the resulting cron-job-still-running indicator for rtm, go into the rtsys/rtsys.cron table with dbe or dbset and set any NULL values of the last_end field to now().

AUTHOR

Daniel Quinlan
Boulder Real Time Technologies, Inc.
Printer icon