Как настроить скрипт для выполнения во время выключения и запуска системы в CentOS / RHEL / Fedora

by itisgood

Скрипт stop_cluster.sh должен выполняться во время загрузки / выключения системы.

Уведомление по электронной почте должно быть отправлено для подтверждения выполнения скрипта.

Если скрипт находится в каталоге /etc/rc.d/ (например, /etc/rc.d/rc3.d/sample-testmail), он не будет выполнен, потому что это не служба, запускаемая SysV.

Даже если скрипт будет перемещен в rc0.d, он будет выполнен во время завершения работы.

Чтобы заставить SysV запускать скрипт, сделайте это способом SysV, и для этого объедините скрипт запуска и остановки в один (который является службой) и включите функции запуска / остановки в скрипте.

Шаги

1. Напишите комбинированный скрипт для выключения и запуска системы в /etc/init.d/ (например, /etc/init.d/sample-testmail).

Или объедините скрипты запуска и остановки в один скрипт (службу) и включите в него функции start () и stop ().

Пример скрипта, размещенного в /etc/init.d si, показан ниже:

# cat /etc/init.d/sample-testmail 
#!/bin/bash
#
# sample-testmail    Test script for sending a mail during startup and stop
#
# chkconfig: 2345 90 20
# description: Toy script for testing

### BEGIN INIT INFO
# Provides: Toy script for sending mail
# Required-Start: $local_fs $network $remote_fs
# Required-Stop: $local_fs $network $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Send a mail during system start up and shutdown
# Description: Toy script for testing.
### END INIT INFO

case "$1" in
start)
touch /var/lock/subsys/sample-testmail
echo "start" `date +%s` >> /tmp/shutdowntest.out
mailx -s "start `date +%s`" root < /tmp/testfile
;;
stop)
rm /var/lock/subsys/sample-testmail
echo "stop" `date +%s` >> /tmp/shutdowntest.out
mailx -s "stop `date +%s`" root < /tmp/testfile
;;

*)
echo "other" `date +%s` >> /tmp/shutdowntest.out
;;
esac

exit 0

2. Добавьте его в chkconfig, чтобы он запускался / останавливался во время загрузки / выключения системы.

# chkconfig --add sample-testmail
# chkconfig --list | grep sample
sample-testmail   0:off   1:off   2:on    3:on    4:on    5:on    6:off

3. Перезагрузите систему и проверьте почту, чтобы проверить это.

# shutdown -r now
# mail
Heirloom Mail version 12.4 7/29/08.  Type ? for help.
"/var/spool/mail/root": 2 messages 2 new
N  1 root                  Tue Apr  3 20:07  18/633   "stop 1522757262"
N  2 root                  Tue Apr  3 20:08  18/634   "start 152275730

 

You may also like

Leave a Comment