Добавить сообщение, которое будет отображаться при завершении работы CentOS 6 и 7

Добавить сообщение, которое будет отображаться при завершении работы CentOS 6 и 7

При перезагрузке или выключении я вижу:

[kbrandt@ny-kbrandt01: ~] sudo reboot
[sudo] password for kbrandt:

Broadcast message from [email protected]
    (/dev/pts/3) at 14:50 ...

The system is going down for reboot NOW!

Я вижу, что эта конкретная строка является частью двоичного файла:

[kbrandt@ny-kbrandt01: ~] strings /sbin/shutdown | grep NOW
The system is going down for power off NOW!
The system is going down for halt NOW!
The system is going down for maintenance NOW!
The system is going down for reboot NOW!

Но знает ли кто-нибудь, есть ли способ добавить напоминание о необходимости отключить звук хоста в нашей системе мониторинга, не изменяя исполняемый файл?

решение1

Аочень осторожночтение shutdown(8)страницы руководства (то есть не первые пару раз, когда я искал и ничего не нашел) показывает, что в командной строке можно указать пользовательское сообщение.

Например:

# shutdown -r +15 "We're rebooting for unicorns. Silence monitoring please."
Shutdown scheduled for Tue 2014-11-25 10:17:53 EST, use 'shutdown -c' to cancel.
# 
Broadcast message from root@saurok (Tue 2014-11-25 10:02:53 EST):

We're rebooting for unicorns. Silence monitoring please.
The system is going down for reboot at Tue 2014-11-25 10:17:53 EST!

В связи с этим, если в вашей среде используется EL7, я рекомендую вам планировать выключения на 1 минуту вперед, если вы хотите, чтобы это сообщение было видно, а не выключать «сейчас», поскольку, по моему опыту, пользователи могут выйти из системы до того, как получат сообщение (из-за того, что systemd очень быстро выключает и запускает систему).

Кстати, если вы хотите еще более быструю перезагрузку, настройте kexec перед перезагрузкой, чтобы пропустить скучные 1–15 минут, необходимые серверу для самотестирования оборудования...

решение2

Вы можете создать службу, которая пишет на стену. Служба запустится и создаст файл "lock", а затем вы получите сообщение при перезагрузке или выключении (процесс, вероятно, отличается для CentOS 7, поскольку он использует systemd):

Сценарий (возможно, мог бы быть и лучше):

[root@ny-kbrandt01 init.d]# cat reminder
#!/bin/bash
# chkconfig: 2345 99 01
# description: My test service

if [[ $1 == "start" ]]; then
        touch /var/lock/subsys/reminder
fi

if [[ $1 == "stop" || $1 == "halt" ]]; then
        wall "Please silence in bosun so Kyle doesn't turn into more of a nutbag"
fi

И обязательно добавьте его с помощью chkconfig:

[root@ny-kbrandt01 init.d]# chkconfig --add reminder

Проблема в том, что эта версия не масштабируется так же хорошо, как и при использовании функции «автоматического отключения звука», поскольку мы не хотим делать это для перезагрузок, инициированных не администратором.

решение3

man shutdown

NAME
   shutdown - bring the system down

SYNOPSIS
   shutdown [OPTION]...  TIME [MESSAGE]

Связанный контент