Managing HP Serviceguard for Linux, Sixth Edition, August 2006

Understanding Serviceguard Software Components
How Package Control Scripts Work
Chapter 3 61
Normal and Abnormal Exits from the Run Script
Exit codes on leaving the run script determine what happens to the
package next. A normal exit means the package startup was successful,
but all other exits mean that the start operation did not complete
successfully.
0—normal exit. The package started normally, so all services are up
on this node.
1—abnormal exit, also known as NO_RESTART exit. The package did
not complete all startup steps normally. Services are killed, and the
package is disabled from failing over to other nodes.
2—alternative exit, also known as RESTART exit. There was an error,
but the package is allowed to start up on another node. You might
use this kind of exit from a customer defined procedure if there was
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