Feb 182013
Apache Tomcat 7 (7.0.37) – Tomcat SetupのUnix daemonによりますと、Tomcarデーモンの起動はcommons-daemonプロジェクトのjsvcツールを使うのがよしとされています。
あわせて$CATALINA_HOME/bin/daemon.shが起動用rcスクリプトのテンプレートとして使えるとの情報があるのですが、コピーして加工するのも面倒なので、daemon.shを呼び出す形式での起動用rcスクリプトを用意してみました。CentOS 6で動作することを確認しています。
#!/bin/sh # # tomcat Startup script for the Apache Tomcat Servlet/JSP container. # # chkconfig: - 80 10 # description: The Apache Tomcat Servlet/JSP container. # # Source function library. . /etc/init.d/functions RETVAL=0 JAVA_HOME=/opt/java CATALINA_HOME=/opt/tomcat DAEMON=$CATALINA_HOME/bin/daemon.sh LOCKFILE=/var/lock/subsys/tomcat start() { echo -n $"Starting tomcat: " $DAEMON --java-home $JAVA_HOME --catalina-home $CATALINA_HOME start RETVAL=$? if [ $RETVAL -eq 0 ]; then echo_success touch $LOCKFILE else echo failure fi echo return $RETVAL } stop() { echo -n $"Shutting down tomcat: " $DAEMON --java-home $JAVA_HOME --catalina-home $CATALINA_HOME stop RETVAL=$? if [ $RETVAL -eq 0 ]; then echo_success rm -f $LOCKFILE else echo failure fi echo return $RETVAL } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; status) status $CATALINA_HOME/bin/jsvc ;; *) echo $"Usage: $0 {start|stop|restart|status}" exit 3 esac exit $?
daemon.shの引数で起動ユーザーを指定することもできますが、デフォルトtomcatなので未指定にしています。
変更したい場合は–tomcat-userをdaemon.sh呼び出し時の引数に追加してみてください。他にdaemon.sh呼び出し時に指定できる引数は–catalina-baseと–catalina-pidがあります。
daemon.shを追いかけてみるとわかるのですが、catalina.shを使うときと同様にsetenv.shが呼び出されるので、CATALINA_OPTSやLANG等、他に必要な変数をそちらに記述していくことができるので便利かと思っています。
Sorry, the comment form is closed at this time.