chkconfigとtomcatの問題

zip版のtomcatなどを落として、起動終了スクリプトを自前で用意して

chkconfig tomcat on

とかやると、サーバー再起動や終了時にTomcatのプロセスを終了するときにハングして動かなくなることがあるようです。

ハングする原因としては、tomcatの終了処理時にネットワークが先に終了しているとエラーが発生してしまうためのようです。

chkconfig tomcat on

をおこなうと

/etc/rc.d/rc2.d
/etc/rc.d/rc3.d
/etc/rc.d/rc4.d
/etc/rc.d/rc5.d

に起動用のシンボリックリンクが追加されますが、

/etc/rc.d/rc0.d
/etc/rc.d/rc6.d

に終了用のシンボリックリンクが追加されないようです。

「/etc/rc.d/rc0.d」は終了、「/etc/rc.d/rc6.d」は再起動時のサービス終了順序を制御しているようです。

このため終了と再起動時にネットワークが先に終了し、Tomcat停止時にハングするようです。

chkconfig --add tomcat

で治ります。