diff options
author | Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> | 2011-05-18 23:32:36 +0200 |
---|---|---|
committer | Tom Gundersen <teg@jklm.no> | 2011-05-19 14:33:35 +0200 |
commit | e0e1420a3506a5988b8f76139788f0ffea298e0c (patch) | |
tree | d5a6541f7c167da7d87d84220ddc17cab3a721da /functions | |
parent | b6e17433c8838acdc48ccfe726325118792a171e (diff) |
add killall5 omit pid functionality
(me) Update the offsets so can be merged now without any issues and respect
the indentation.
Implements FS#10536 - [initscripts] internal: save a pid from killall5
All credits to: Kurt J. Bosch
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
Signed-off-by: Tom Gundersen <teg@jklm.no>
Diffstat (limited to 'functions')
-rw-r--r-- | functions | 16 |
1 files changed, 14 insertions, 2 deletions
@@ -222,6 +222,14 @@ ck_status() { fi } +# PIDs to be omitted by killall5 +declare -a omit_pids + +add_omit_pids() { + omit_pids+=( $@ ) +} + + kill_everything() { # $1 = where we are being called from. # This is used to determine which hooks to run. @@ -241,12 +249,16 @@ kill_everything() { # Terminate all processes stat_busy "Sending SIGTERM To Processes" run_hook "$1_prekillall" - /sbin/killall5 -15 &> /dev/null + local pid k5args="" + for pid in ${omit_pids[@]}; do + k5args+=" -o $pid" + done + /sbin/killall5 -15 $k5args &> /dev/null /bin/sleep 5 stat_done stat_busy "Sending SIGKILL To Processes" - /sbin/killall5 -9 &> /dev/null + /sbin/killall5 -9 $k5args &> /dev/null /bin/sleep 1 stat_done |