I tried your script both ways and it worked flawlessly on a CentOS 3.6
box.

I would take a look under which user the jvm is running after you start
your script. (ps -ef | grep java) If it is running as root then that
might indicate that something about the su command isn't working as
expected.

It also might be that you once ran the jvm as root and it isn't your
startup script at all but the fact that the log files were once created
with root ownership. Thus, subsequent tomcat invocations fail to write
to existing logs due to invalid permissions.

Have you tried removing the logs and running your startup script again?

Also, in my experience it would be better to add more checking to see
that the java vm has truly stopped in the restart logic. Java has to
unload everything at stop time and 10 seconds is not always enough. The
default shutdown.sh script will exit with a normal return code even if
the jvm is still running.

So, a good number of times, the listening ports will still be in use
when the start command is executed throwing lots of nasty exceptions. 

You could modify startup.sh so that it doesn't exit until the jvm is
stopped, or modify your 'sleep' statement such that it has process
checking logic that waits for some period of time for the jvm to exit
and if it fails kill it. 

The latter is more desirable since you will probably upgrade tomcat at
some point and do not want to risk losing your changes or having to
adapt them as the startup and shutdown scripts change over time.



-----Original Message-----
From: Tejas Dhedia [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, October 03, 2006 6:00 PM
To: users@tomcat.apache.org
Subject: Tomcat logging problem

Hi,
I am running tomcat 5.5.17 under opensuse 10.1 and my JVM version is
1.5.0_06. I am running my tomcat as a seperate tomcat user and starting
it
at boot time using the following script in /etc/init.d.

#!/bin/sh
#
# Startup script for Tomcat

JAVA_HOME=/usr/lib/jvm/java
export JAVA_HOME
start_tomcat=/home/tomcat/apache-tomcat-5.5.17/bin/startup.sh
stop_tomcat=/home/tomcat/apache-tomcat-5.5.17/bin/shutdown.sh

start() {
        echo -n "Starting tomcat: "
        su -c ${start_tomcat} - tomcat
        echo "done."
}
stop() {
        echo -n "Shutting down tomcat: "
        ${stop_tomcat}
        echo "done."
}

# See how we were called
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart)
        stop
        sleep 10
        start
        ;;
  *)
        echo "Usage: $0 {start|stop|restart}"
esac



 I get following error output in my catalina.out file

java.util.logging.ErrorManager: 4
java.io.FileNotFoundException: /home/tomcat/apache-tomcat-5.5.17
/logs/localhost.2006-10-02.log (Permission denied)
        at java.io.FileOutputStream.openAppend(Native Method)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:177)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:102)
        at java.io.FileWriter.<init>(FileWriter.java:61)
        at org.apache.juli.FileHandler.open(FileHandler.java:256)
        at org.apache.juli.FileHandler.<init>(FileHandler.java:50)
........


java.util.logging.ErrorManager: 4
java.io.FileNotFoundException: /home/tomcat/apache-tomcat-5.5.17
/logs/admin.2006-10-02.log (Permission denied)
        at java.io.FileOutputStream.openAppend(Native Method)
 .................


java.util.logging.ErrorManager: 4
java.io.FileNotFoundException:
/home/tomcat/apache-tomcat-5.5.17/logs/host-
manager.2006-10-02.log (Permission denied)
        at java.io.FileOutputStream.openAppend(Native Method)
................


As a result nothing is being logged.
On checking I found that the log files were being created with owner as
root
instead of tomcat.
Can someone please help me find where am i going wrong.

Thanks
Tejas

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to