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

非常に慎重man ページを読むと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

ウォールに書き込むサービスを作成できます。サービスが開始され、「ロック」ファイルが作成され、再起動またはシャットダウン時にメッセージが表示されます (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]

関連情報