2009/10/02 (金)
2009-10-02:再起動なしのホスト名変更
cron とかで送られてくるメールの送信元ホスト名を変更したい、対象は現在進行形でサービス中のサーバなので再起動はなしにしたい、さてどうしよう、という話題。
答えを見つけるまでに2時間くらい試行錯誤してしまった。
ホスト名なんてそうは変えないものだし、再起動ヤダというわがままも少ないのか、ググっても同様事例を見つけられなかったので、メモを残しておくことにした次第。
相手は CentOS 5.3。
RedHat 系なので、/etc/sysconfig/network ファイルの HOSTNAME を書き変えて、sudo /etc/init.d/network restart じゃないの? と思ったら、そう一筋縄にはいかない。
答えは
$ sudo su - # echo "newhostname" > /proc/sys/kernel/hostname # /etc/init.d/sendmail restart
だった。
この /proc に直接書き込んでしまう、というのに辿りつくまで時間がかかってしまったよ。
しかし、hostname “newhostname” でのホスト名変更では、sendmail 再起動しても送信元ホスト名が変わってくれないのだなぁ。なんでかは謎。
ちなみに、今日知ったびっくり事実。
/etc/init.d/network はホスト名を変更してくれない
すっかり勘違いしていた。
何度もスクリプトを読み返したんだけど、hostname 実行するところないのね。/etc/sysconfig/network を読みこんではいるが、NETWORKING の設定ろ見るだけのようだ。
これって以前から変わった動作? それとも以前からこうだった?
サーバ起動時の /etc/rc.sysinit の中では、/etc/sysconfig/network 内の HOSTNAME を hostname コマンドで実行しているけど、起動時動作のホスト名設定はここだけのよう。
ちょっと調べるのに時間かかってしまったけど、サーバの再起動せずに(できれば /etc/init.d/network restart もせずに)ホスト名変更をさせたかったので、いい答えを見つけることができてよかったよかった。
comment