Managing Serviceguard Fifteenth Edition, reprinted May 2008

Understanding Serviceguard Software Components
How Packages Run
Chapter 3 93
During normal operation, while all services are running, you can see the
status of the services in the “Script Parameters” section of the output of
the cmviewcl command.
When a Service, Subnet, or Monitored Resource Fails,
or a Dependency is Not Met
What happens when something goes wrong? If a service fails and there
are no more restarts, if a subnet fails and there are no standbys, if a
configured resource fails, or if a configured dependency on a
special-purpose package is not met, then a failover package will halt on
its current node and, depending on the setting of the package switching
flags, may be restarted on another node. If a multi-node or system
multi-node package fails, all of the packages that have configured a
dependency on it will also fail.
Package halting normally means that the package halt script executes
(see the next section). However, if a failover package’s configuration has
the service_fail_fast_enabled flag set to yes for the service that
fails, then the node will halt as soon as the failure is detected. If this flag
is not set, the loss of a service will result in halting the package
gracefully by running the halt script.
If auto_run is set to yes, the package will start up on another eligible
node, if it meets all the requirements for startup. If auto_run is set to no,
then the package simply halts without starting up anywhere else.
NOTE If a package is dependent on a subnet, and the subnet fails on the node
where the package is running, the package will start to shut down. If the
subnet recovers immediately (before the package is restarted on an
adoptive node), the package manager restarts the package on the same
node; no package switch occurs.
When a Package is Halted with a Command
The Serviceguard cmhaltpkg command has the effect of executing the
package halt script, which halts the services that are running for a
specific package. This provides a graceful shutdown of the package that
is followed by disabling automatic package startup (see auto_run on
page 289).