thinrasp/etc_org/init.d/killprocs
2019-11-26 21:36:24 +01:00

63 lines
1.3 KiB
Bash
Executable File

#! /bin/sh
### BEGIN INIT INFO
# Provides: killprocs
# Required-Start: $local_fs
# Required-Stop:
# Default-Start: 1
# Default-Stop:
# Short-Description: executed by init(8) upon entering runlevel 1 (single).
### END INIT INFO
PATH=/sbin:/usr/sbin:/bin:/usr/bin
. /lib/lsb/init-functions
do_start () {
# Kill all processes.
log_action_begin_msg "Asking all remaining processes to terminate"
killall5 -15 # SIGTERM
log_action_end_msg 0
alldead=""
for seq in 1 2 3 4 5 6 7 8 9 10; do
# use SIGCONT/signal 18 to check if there are
# processes left. No need to check the exit code
# value, because either killall5 work and it make
# sense to wait for processes to die, or it fail and
# there is nothing to wait for.
if killall5 -18 ; then
:
else
alldead=1
break
fi
sleep 1
done
if [ -z "$alldead" ] ; then
log_action_begin_msg "Killing all remaining processes"
killall5 -9 # SIGKILL
log_action_end_msg 1
else
log_action_begin_msg "All processes ended within $seq seconds."
log_action_end_msg 0
fi
}
case "$1" in
start)
do_start
;;
restart|reload|force-reload)
echo "Error: argument '$1' not supported" >&2
exit 3
;;
stop|status)
# No-op
;;
*)
echo "Usage: $0 start|stop" >&2
exit 3
;;
esac