bootstrap/rc.d/rc.local_shutdown

73 lines
2 KiB
Bash
Executable file

#!/bin/bash
# /etc/rc.d/rc.local_shutdown - Local system shutdown script.
# This script will be run when the system is shutdown or rebooted.
# Notify that the server is shutting down.
CONFIG_FILE="server" /opt/bin/pushover -T "Shutting down: ${HOSTNAME%%.*}" -p 1 -m "$(printf '%(%d %b %Y - %H:%M:%S)T')"
# Stop containers.
[ -x /etc/rc.d/rc.lxc ] && /etc/rc.d/rc.lxc stop
# Stop lxcfs.
[ -x /etc/rc.d/rc.lxcfs ] && /etc/rc.d/rc.lxcfs stop
# Stop libvirt.
[ -x /etc/rc.d/rc.libvirt ] && {
/etc/rc.d/rc.libvirt guests_shutdown
/etc/rc.d/rc.libvirt stop
}
# Stop the rtorrent instances started at boot.
grep "^seeder:" /etc/passwd >/dev/null 2>&1 && {
pkill -INT -u seeder '^rtorrent .*$'
printf "%s" "Waiting up to 30 seconds for rtorrent to exit"
for ((i=0; i <= 59; i++)); do
if pgrep -u seeder '^rtorrent .*$' >/dev/null 2>&1; then
printf "%s" "."
sleep 0.5
else
break
fi
done
if ! pgrep -u seeder '^rtorrent .*$' >/dev/null 2>&1; then
printf "%s\n" " clean exit."
else
printf "%s\n" " failed - terminating."
pkill -TERM -u seeder '^rtorrent .*$'
sleep 2
pkill -KILL -u seeder '^rtorrent .*$'
fi
}
# Stop rsyncd.
[ -x /etc/rc.d/rc.rsyncd ] && /etc/rc.d/rc.rsyncd stop
# Stop proftpd.
[ -x /etc/rc.d/rc.proftpd ] && /etc/rc.d/rc.proftpd stop
# Stop greylistd.
[ -x /etc/rc.d/rc.greylistd ] && /etc/rc.d/rc.greylistd stop
# Stop SpamAssassin.
[ -x /etc/rc.d/rc.spamd ] && /etc/rc.d/rc.spamd stop
# Stop the php-fpm FastCGI daemon.
[ -x /etc/rc.d/rc.php-fpm ] && /etc/rc.d/rc.php-fpm stop
# Stop fail2ban.
[ -x /etc/rc.d/rc.fail2ban ] && /etc/rc.d/rc.fail2ban stop
# Stop netdata.
[ -x /etc/rc.d/rc.netdata ] && /etc/rc.d/rc.netdata stop
# Stop the vnstat daemon.
[ -x /etc/rc.d/rc.vnstat ] && /etc/rc.d/rc.vnstat stop
# Stop GlusterFS daemon.
[ -x /etc/rc.d/rc.glusterd ] && /etc/rc.d/rc.glusterd stop
# Stop the qemu guest additions agent.
[ -x /etc/rc.d/rc.qemu-ga ] && /etc/rc.d/rc.qemu-ga stop
# Stop the MCE daemon.
[ -x /etc/rc.d/rc.mcelog ] && /etc/rc.d/rc.mcelog stop