Managing Serviceguard Seventeenth Edition, First Reprint December 2009
package on an alternate node. This might include such things as shutting down
application processes, removing lock files, and removing temporary files.
2. Ensure that package IP addresses are removed from the system; use the
cmmodnet(1m) command.
First determine which package IP addresses are installed by inspecting the output
of netstat -in. If any of the IP addresses specified in the package control script
appear in the netstat output under the Address column for IPv4 or the Address
column for IPv6, use cmmodnet to remove them:
cmmodnet -r -i <ip-address> <subnet>
where <ip-address> is the address in the Address or the Address column and
<subnet> is the corresponding entry in the Network column for IPv4, or the
prefix (which can be derived from the IPV6 address) for IPv6.
3. Ensure that package volume groups are deactivated. First unmount any package
logical volumes which are being used for filesystems. This is determined by
inspecting the output resulting from running the command bdf -l. If any package
logical volumes, as specified by the LV[] array variables in the package control
script, appear under the “Filesystem” column, use umount to unmount them:
fuser -ku <logical-volume>
umount <logical-volume>
Next, deactivate the package volume groups. These are specified by the VG[]
array entries in the package control script.
vgchange -a n <volume-group>
4. Finally, re-enable the package for switching.
cmmodpkg -e <package-name>
If after cleaning up the node on which the timeout occurred it is desirable to have
that node as an alternate for running the package, remember to re-enable the
package to run on the node:
cmmodpkg -e -n <node-name> <package-name>
The default Serviceguard control scripts are designed to take the straightforward steps
needed to get an application running or stopped. If the package administrator specifies
a time limit within which these steps need to occur and that limit is subsequently
exceeded for any reason, Serviceguard takes the conservative approach that the control
script logic must either be hung or defective in some way. At that point the control
script cannot be trusted to perform cleanup actions correctly, thus the script is terminated
and the package administrator is given the opportunity to assess what cleanup steps
must be taken.
If you want the package to switch automatically in the event of a control script timeout,
set the node_fail_fast_enabled parameter (page 277) to yes. In this case, Serviceguard will
cause the node where the control script timed out to halt (system reset). This effectively
Solving Problems 383