Managing Serviceguard 11th Edition, Version A.11.16, Second Printing June 2004

Understanding Serviceguard Software Components
How Package Control Scripts Work
Chapter 3 89
an error, but starting the package on another node might succeed. A
package with a RESTART exit is disabled from running on the local
node, but can still run on other nodes.
• Timeout—Another type of exit occurs when the
RUN_SCRIPT_TIMEOUT is exceeded. In this scenario, the package is
killed and disabled globally. It is not disabled on the current node,
however.
Service Startup with cmrunserv
Within the package control script, the cmrunserv command starts up the
individual services. This command is executed once for each service that
is coded in the file. Each service has a number of restarts associated with
it. The cmrunserv command passes this number to the package manager,
which will restart the service the appropriate number of times if the
service should fail. The following are some typical settings:
SERVICE_RESTART[0]=" " ; do not restart
SERVICE_RESTART[0]="-r <n>" ; restart as many as <n> times
SERVICE_RESTART[0]="-R" ; restart indefinitely
NOTE If you set <n> restarts and also set SERVICE_FAILFAST_ENABLED to YES,
the failfast will take place after <n> restart attempts have failed. It does
not make sense to set SERVICE_RESTART to “-R” for a service and also set
SERVICE_FAILFAST_ENABLED to YES.
While Services are Running
During the normal operation of cluster services, the package manager
continuously monitors the following:
• Process IDs of the services
• Subnets configured for monitoring in the package configuration file
• Configured resources on which the package depends
Some failures can result in a local switch. For example, if there is a
failure on a specific LAN card and there is a standby LAN configured for
that subnet, then the Network Manager will switch to the healthy LAN