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

Configuring Packages and Their Services
Writing the Package Control Script
Chapter 6270
An example of this portion of the script is shown below, with the date
and echo commands included to log starts and halts of the package to a
special file.
# START OF CUSTOMER DEFINED FUNCTIONS
# This function is a place holder for customer defined functions.
# You should define all actions you want to happen here, before the service is
# started. You can create as many functions as you need.
function customer_defined_run_cmds
{
# ADD customer defined run commands.
: # do nothing instruction, because a function must contain some command.
date >> /tmp/pkg1.datelog
echo 'Starting pkg1' >> /tmp/pkg1.datelog
test_return 51
}
# This function is a place holder for customer defined functions.
# You should define all actions you want to happen here, before the service is
# halted.
function customer_defined_halt_cmds
{
# ADD customer defined halt commands.
: # do nothing instruction, because a function must contain some command.
date >> /tmp/pkg1.datelog
echo 'Halting pkg1' >> /tmp/pkg1.datelog
test_return 52
}
# END OF CUSTOMER DEFINED FUNCTIONS
Adding Serviceguard Commands in Customer Defined Functions
You can add Serviceguard commands (such as cmmodpkg) in the
Customer Defined Functions section of a package control script.
However, these commands must not interact with the package itself.
Additionally, if a Serviceguard command interacts with another package,
then you need to check all packages with Serviceguard commands for the
possibility of a command loop.
For instance, a command loop might occur under the following
circumstances. Suppose Pkg1 does a cmmodpkg -d of Pkg2, and Pkg2
does a cmmodpkg -d of Pkg1. If both Pkg1 and Pkg2 start at the same