Managing HP Serviceguard for Linux, Eighth Edition, March 2008

Understanding Serviceguard Software Components
How Packages Run
Chapter 366
NOTE After the package run script has finished its work, it exits, which means
that the script is no longer executing once the package is running
normally. After the script exits, the PIDs of the services started by the
script are monitored by the package manager directly. If the service dies,
the package manager will then run the package halt script or, if
service_fail_fast_enabled is set to yes, it will halt the node on which
the package is running. If a number of Restarts is specified for a service
in the package control script, the service may be restarted if the restart
count allows it, without re-running the package run script.
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. The package script may not have been able to clean up some
of its resources such as LVM volume groups, VxVM disk groups or
package mount points, so before attempting to start up the package
on any node, be sure to check whether any resources for the package
need to be cleaned up.