# 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 -9) and wait for another configurable amount

#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