end0tknr's kipple - 新web写経開発

http://d.hatena.ne.jp/end0tknr/ から移転します

tomcat の自動起動とログローテート

jsvcのcompile

tomcat自動起動には、tomcatに含まれているjsvcを利用します。

$ cd apache-tomcat-6.0.16/bin
$ tar -zxvf jsvc.tar.gz
$ cd jsvc-src/
$ configure --with-java=/usr/java/jdk1.6.0_06
$ make
$ cp jsvc ..

起動スクリプトの編集

起動スクリプトもjsvcに付属しています。

$ vi jsvc-src/native/Tomcat5.sh
> # chkconfig: 2345 80 20
> # description: Tomcat5

< JAVA_HOME=/home2/java/j2sdk1.4.2_03
< CATALINA_HOME=/home/tomcat5/tomcat5/jakarta-tomcat-5/build
< DAEMON_HOME=/home/jfclere/daemon
< TOMCAT_USER=tomcat5
    • -
> JAVA_HOME=/usr/java/jre1.6.0_05 > CATALINA_HOME=/usr/local/apache-tomcat-6.0.16 > DAEMON_HOME=$CATALINA_HOME > TOMCAT_USER=endo 40c43 < CATALINA_BASE=/home/tomcat5/tomcat5/jakarta-tomcat-5/build > CATALINA_BASE=$CATALINA_HOME 53c56 < $DAEMON_HOME/src/native/unix/jsvc \ > $DAEMON_HOME/bin/jsvc \ 78c81 < $DAEMON_HOME/src/native/unix/jsvc \ > $DAEMON_HOME/bin/jsvc \

起動スクリプトの配備

# cd /etc/rc.d/init.d
# cp <$TOMCAT-DIR>/bin/jsvc-src/native/Tomcat5.sh .
# chkconfig --add Tomcat5.sh 
# chkconfig --list Tomcat5.sh 
Tomcat5.sh   0:off  1:off  2:on   3:on   4:on   5:on   6:off

ログローテート

tomcatapachemod_jk等で連携しているなら、こんな感じ

# vi /etc/logrotate.d/apache2
/usr/local/apache2/logs/access_log /usr/local/apache2/logs/error_log /usr/local/apache2/logs/mod_jk.log {
   rotate 93
   start 1
   daily
   nomail
   compress
   sharedscripts
   postrotate
       /bin/kill -HUP `cat /usr/local/apache2/logs/httpd.pid 2>/dev/null` 2> /dev/null || true
   endscript
}

# vi /etc/logrotate.d/tomcat
/usr/local/tomcat/logs/*.out {
   copytruncate
   rotate 93
   start 1
   daily
   nomail
   compress
   postrotate
     /bin/kill -HUP `cat /var/run/jsvc.pid 2>/dev/null` 2> /dev/null || true
  endscript
}