I'd recommend removing the export JAVA_HOME line. Doing that in an init
script does not work. Put it in a file in /etc/profile.d/java.sh instead.

Comment out the line in the init script and try it again. You're running
into an odd environment setting condition.

On Fri, Aug 3, 2012 at 5:16 PM, Mark Eggers <its_toas...@yahoo.com> wrote:

> On 8/3/2012 12:38 PM, Shaw, Ray V CTR (US) wrote:
>
>>
>> Konstantin Kolinko wrote:
>>
>>> Note that calling startup.sh and shutdown.sh  is just a wrapper for
>>> calling catalina.sh with arguments "start" and "stop" respectively.
>>> I'd recommend co call catalina.sh directly instead of those wrapper
>>> scripts.
>>>
>>> Either java fails to start (and catalina.out is opened by shell as the
>>> output stream of that process - it has nothing to do with Tomcat
>>> itself),  or it terminates when its parent process terminates due to
>>> HUP signal.
>>>
>>> To exclude the former, try replace your command with "catalina.sh run
>>> -security", so that Tomcat starts interactively in the same shell.
>>>
>>
>> I tried changing it to this:
>>
>> /bin/su -- tomcat $CATALINA_HOME/bin/catalina.sh run -security
>>
>> (as well as various permutations with the quotes remaining).  I also put
>> an export before CATALINA_HOME, and have tried putting quotes around the
>> stop command (to no effect); all together, this should address the issues
>> André Warnier raised.
>>
>> When I use "run", it works correctly from sudo, but stays attached to the
>> terminal (and I can't seem to find any combination of nohup, exec, and/or &
>> that will start it detached; I can use ctrl-z and bg, but that's ugly).
>>  When I use "start", I get the same issue as before.
>>
>> As requested by Stefan Mayr, the output (normally) is this (exactly the
>> same for root and sudo):
>>
>> bash-4.1# service tomcat7 start
>> DES encrypted or local terminal session
>> Using CATALINA_BASE:   /opt/tomcat7
>> Using CATALINA_HOME:   /opt/tomcat7
>> Using CATALINA_TMPDIR: /opt/tomcat7/temp
>> Using JRE_HOME:        /usr/java/jdk6-64/
>> Using CLASSPATH:       /opt/tomcat7/bin/bootstrap.**
>> jar:/opt/tomcat7/bin/tomcat-**juli.jar
>> Using Security Manager
>>
>> Adding a -x to the /bin/sh at the top of catalina.sh didn't seem to
>> indicate any differences when running as root versus sudo.
>>
>> Thanks everyone for your replies.
>>
>> --Ray
>>
>
> Ray,
>
> I've not checked to see if my scripts work with sudo, but they seem to
> work as system startup / shutdown as well as from root.
>
> My base start command looks like this:
>
> $SU - $TOMCAT_USER -c "${CONFIG_OPTS} ${CAT_PID} ${TOMCAT_INSTANCE} start"
> >> $SERVICE_LOG 2>&1
>
> Please ignore the wrapping - it's all one line.
>
> Now for some explanations
>
> $SU - this is the su command to run
> If you're running SELinux, you'll need to set this to /sbin/runuser.
>
> $TOMCAT_USER - this is the user to run under
> I run multiple Tomcat services, and sometimes it's nice to have a service
> run as a different unprivileged user. Otherwise I have things set up for a
> default user.
>
> ${CONFIG_OPTS} - per services configuration options
> For each service I have a configuration file that sets bunches of items.
> This includes CATALINA_HOME, CATALINA_BASE, JRE_HOME, and JAVA_HOME. The
> service name reads this information from a configuration file of the same
> name, validates the information, and creates the appropriate export
> commands.
>
> This gives me the option of running multiple JREs and multiple versions of
> Tomcat all without editing shell scripts.
>
> ${CAT_PID} - per service PID file
> This instructs catalina.sh to write its pid to a known file.
>
> ${TOMCAT_INSTANCE} - location of catalina.sh
> This is based on the name of the script, and the location of CATALINA_HOME
> / CATALINA_BASE.
>
> $SERVICE_LOG - echos information about the service
> This is where all of the startup stuff gets written. It's nice, since I
> have a record for each service concerning what CATALINA_HOME (and therefore
> version of Tomcat) it's based on, what version of Java it's using, and when
> the current version was started. I can also get the time last started from
> /var/run/tomcatn/servicename.
>
> I suspect that instead of su, you need to use /sbin/runuser, and you need
> to send the output somewhere (hence >> $SERVICE_LOG 2>&1 on my start line).
>
> My entire script is rather long, ugly, and took a while to write. I'm not
> a shell script programmer, but it seems to be working well in production on
> both CentOS 5.8 and 6.3.
>
> Hope this gets you going in the right direction.
>
> /mde/
>
>
> ------------------------------**------------------------------**---------
> To unsubscribe, e-mail: 
> users-unsubscribe@tomcat.**apache.org<users-unsubscr...@tomcat.apache.org>
> For additional commands, e-mail: users-h...@tomcat.apache.org
>
>


-- 
Adam Breaux
breau...@gmail.com
1 (267) 329-9370

Reply via email to