# PREPARATION: On application/package start memorize application process
# | names or process identifier (PIDs) |
# | keep the list updated with monitor function if needed |
# |
|
#STEP 1: Graceful Shutdown Attempt
#Call proprietary application shutdown command first.
#e.g. “shutdown immediate” for Oracle database or
# | “stopsap r3” for R/3 application server |
# |
|
#STEP 2: Wait for a configurable amount of time (grace period) to give
#native application shutdown procedure a chance to clean up.
#e.g. while [ grace period not over ]
# | check for | processes by name or PID |
# | if [ none are still running ] | |
# | exit 0 |
|
# | sleep 1 |
|
# | done |
|
# | grace period expired, not all process halted proceed | |
# | with STEP 3 |
|
# |
|
|
#STEP 3: Try harder (kill
#of time (kill_period) for processes to die.
#e.g. kill processes
# | while [ kill_period not over ] |
# | check for processes by name or PID |
# | if [ none are still running ] |
# | exit 0 |
# | sleep 1 |
# | done |
# | kill period expired, not all process halted, return |
# | failure code to Serviceguard package control script |
# |
|
17