質問: シェルスクリプトで環境変数が読めない javaアプリケーションサーバー構築(tomcat5) - centosで自宅サーバー構築: http://centossrv.com/tomcat5.shtml 上記のサイトでtomcatのインストールをしていて tomcat起動スクリプトを書き、 /etc/rc.d/init.d/tomcat start だとtomcatは正常に起動するのですが、 service tomcat start で起動すると starting tomcat neither the java_home nor the jre_home environment variable is defined at least one of these environment variable is needed to run this program というメッセージが表示されて、起動に失敗します スクリプト内で環境変数が読めていないように見えるのですが、 原因が分かりません。教えてください osはcentos 5.3です
回答: serviceのman http://man.sourcentral.org/centos5/8+service に 「service runs a system v init script in as predictable environment as possible, removing most environment variables and with current working directory set to /.」 とある通り、serviceコマンドはほとんどの環境変数をクリアしてしまうので、それが原因だと思います。 serviceコマンドは単なるシェルスクリプトなはずなので、中身を読んでみるといいと思います。 serviceコマンドを使って起動できるようにするには、/etc/rc.d/init.d/tomcat の内容を工夫して書くようにする必要がありそうです。