RHEL6系でinitscriptsをアップデートすると編集済設定ファイルが上書きされるのを、さらに上書きで修正するスクリプト

改定履歴

  • 2015/03/14 –:–
        Gistに修正版を登録 lunatilia / control-alt-delete.override
  • 2014/07/09 13:00
        タグを変更したときに変わってしまっていた部分を修正 (> を > に変更)

Linuxを入れたら Ctrl + Alt +Del で再起動する設定を切ることがわりとあると思います。
例えばRed Hat Enterprise Linux 6(またはRHELクローン)だと、

/etc/init/control-alt-delete.conf

を削除するか、中身をコメントアウトするようなことが多いのかなと勝手に思ってます。

ところが、yum update なんかで initscripts をアップデートしてしまうと、設定ファイルがrpmsaveすら取らずに、しかも control-alt-delete.conf 以外のスクリプトもさっくりまるっと上書きされちゃったりします。
一回設定したらそんなところを確認することもないような気がするので、わりと長いこと使っていて、かつ定期的にアップデートしているシステムだと、Windowsのノリで Ctrl + Alt + Del を押されちゃったりなんかしたら再起動しちゃうパターンがあるかもしれないと。

というわけで、RHEL6系で yum update 、もしくは initscripts をアップデートしたあとで (‘ω’)·······うわああああああ とならないためのスクリプトをしれ~っと載せてみたり。
ちなみにいつものごとく、保証はできませんので使用は自己責任でお願いしますってことで。

  • /etc/init/ctrl-alt-del-disable.conf
description     "Disabled emergency keypress handling"
author          "Mitsuki Shirase"

start on stopped rc RUNLEVEL=[2345]

script
EKHINIT=/etc/init/control-alt-delete.conf

if /bin/grep "shutdown -r now" ${EKHINIT} > /dev/null
then
        /bin/sed -i "/shutdown/c\exec /usr/bin/logger -t init \"Control-Alt-Delete pressed.\"" ${EKHINIT}
        /usr/bin/logger -t init "Modified ${EKHINIT}. Disabled emergency keypress handling."
else
        /usr/bin/logger -t init "${EKHINIT} is no changed."
fi
end script

こちらがコピペミスをしてなければ、このままコピーでも使える…はず。
怪しいと思ったら、自分で書いて頂いたほうが早い気がします。

要は “shutdown -r now” という文字列が /etc/init/control-alt-delete.conf に存在したら、1行まるごと “/usr/bin/logger ~” に書き換えてねってだけのスクリプト。
で、1回書き換えられると、次回から Ctrl + Alt + Del を押されても、/var/log/messages に “Control-Alt-Delete が押されましたよっと” って出力されるだけになりますし、initscriptsの更新で /etc/init/control-alt-delete.conf が上書きされてしまっても、アップデート後に再起動を1回しておいたら書き換えが発生して、Ctrl + Alt + Del による再起動イベントは発生しませんよと、ただそれだけのお話。

ちなみにGUI環境だったらあんまり意味がないような気がする、このスクリプト。
minimalインストールなCentOS 6.2~6.4でしか試してませんけど。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中