HP Serviceguard Normal and Abnormal Exits from the Run Script, Service Startup with cmrunserv

Models: Serviceguard

1 407
Download 407 pages 39.81 Kb
Page 63
Image 63

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.

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. You can configure a number of restarts for each service. 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 in a legacy package; for more information about configuring services in modular packages, see the discussion starting with service_name (page 243), and the comments in the package configuration template file.

SERVICE_RESTART[0]=" " SERVICE_RESTART[0]="-r <n>" SERVICE_RESTART[0]="-R"

;do not restart

;restart as many as <n> times

;restart indefinitely

NOTE: If you set <n> restarts and also set service_fail_fast_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_fail_fast_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

How Packages Run 63

Page 63
Image 63
HP Serviceguard Normal and Abnormal Exits from the Run Script, Service Startup with cmrunserv, While Services are Running