Tomcat起動時のエラー「This account is currently not available.」

Tomcat起動時にエラー「This account is currently not available.」がでることがあります。
これはTomcat起動ユーザにログインシェル(/bin/bash等)を与えると回避できる。しかし、これはTomcatをデーモン化することで ログインシェルを与えずに済みます。

Tomcat起動時のエラー「This account is currently not available.」
# /etc/init.d/tomcat start
Starting the tomcat service
This account is currently not available.

上記エラーが出たTomcat起動スクリプトでは、rootからTomcatアカウントへsuしてtomcatを起動するように していました。
su -l $TOMCAT_USER -c "export JRE_HOME=$JRE_HOME; \
          export CATALINA_OPTS=\"$CATALINA_OPTS\"; \
          $CATALINA_HOME/bin/startup.sh"
このようなやり方だとログインする必要性はないが、Tomcatを起動させるため、シェルが扱える必要が あるため、ログインシェルを/bin/bashに変更することで回避できました。

Tomcatをデーモン化する
上記ように起動するよりも、Tomcatをデーモン化するjsvcで起動した方がいいようです。

・jsvcのメリット
ルート以外に実行権限を渡せる(セキュリティ的にこっちのほうがいい)。 JVMがクラッシュしたときjsvcが再起動してくれるので、サービスがストップしにくくなるかもしれない

・jsvcの在り処
インストールしたTomcat6の$CATALINA_HOME/bin/にcommons-daemon-native.tar.gzというファイル が存在する。この中にjsvcがあるので、commons-daemon-native.tar.gzを展開し、jsvcをコンパイルする。

Google+