Re: [tomcat7] rhel 6 - init.d script works; does not start on reboot

2014-01-16 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

Eddie,

On 1/15/14, 11:01 AM, Bush, Eddie wrote:
> 
> 
> -Original Message- From: Daniel Mikusa
> [mailto:dmik...@gopivotal.com] Sent: Wednesday, January 15, 2014
> 9:54 AM To: Tomcat Users List Subject: Re: [tomcat7] rhel 6 -
> init.d script works; does not start on reboot
> 
> On Jan 15, 2014, at 10:32 AM, "Bush, Eddie"
>  wrote:
> 
>> Howdy, List!
>> 
>> I'm in a bit of a pickle here. I'm a senior dev, and quite good
>> at that, but for my new client I'm also charged with configuring
>> our machines. We're running on Tomcat 7, so I grabbed the tgz and
>> installed it per the instructions.
>> 
>> Everything works great! ... until I reboot the server :) At that
>> point, everything else comes up, but tomcat does not.
>> 
>> I have removed all logs and rebooted and see nothing notable in
>> any of the tomcat logs (because, of course, it did not start),
>> nor can I find anything in syslog or messages. The chkconfig
>> command reports that the script is configured to run for runlevel
>> 2-5, and I've even inspected the links in rc.d/rc*.d and they are
>> linked to the init.d script (which is the same danged script that
>> works interactively via "service tomcat start/stop"!)
> 
> Dan> Where did you get the init script from? EB> Off the net
> somewhere, initially. I tweaked it to use sudo to change user to
> tomcat:tomcat though, and I changed the chkconfig declaration to be
> extremely similar to what nginx uses, since that works fine.
> chkconfig likes the script, and sets it up in what looks to be
> perfect form (comparing to other things). These are pretty standard
> scripts though, yes? They basically just delegate to the scripts
> distributed with tomcat, which all end up calling catalina.sh :-)

Note that you shouldn't have to use "sudo" in init.d scripts: only
root should be running those in the first place.

- -chris
-BEGIN PGP SIGNATURE-
Version: GnuPG v1
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBCAAGBQJS2FBlAAoJEBzwKT+lPKRYQ+kP/R/FPKYQSwZTR87T4R7fJi9V
kgD6dD/6wzOsvlWwCbebsWMisJlARAV2vAYJIfeh5+RdL8DLllmQk0Bj/mpQ8a2e
lsKRBInQLOg08HM1hKzb2F9R/AvGkO9aPuc8LesVKVoUGUdiGKoKf2knPx2TT7dp
4myJWniEzhyHIHzKg/MBraLrs1CoLk9Ud4T7hwrvJ6KPrC/MaNUFOH6PpnJqpQCj
smUyPDsHRuoRq7ZYpJkl6LV/H4bJW7AAVa9Pgbt9ykEvuwYlV8UlwIzA7nf8mOBv
nCr661b/HLU3R6Frpop+9nkkUqGlNsQVzy60n6ADWrZasgBfP1y8r7CN5MBpE8D2
IvlrfnivmaCpfmYbHaKLojiT7/hd2oYFtL2OMzNGJrEFDIdwDNwg0FthK1dZ7PA2
QxRwO2yXK1dV4F/LV5XJsxvbRlNlIXYK8KGKxeBAVY+NMj0pllUl1ciDBFXhG0hW
73P46/7sP29Ct0d1x3jblYK9UlVatP2U8uxmR+jW0i39hzQvkwNJJFwuNfeVymvl
MmnXHwU89v0LR2eCYTGN2DmAcKaOlof8D1rD9S6iyyaT0FxzbQ5dE/tAoIoQnWh/
3zDV/8xXCBSxSalH4qv8wu2/xNLG4NLGvOmuO4QZTKI1S4zQfpGSA37ToRiukUJ4
7Fwzy7ou9H9hN7HMmc7z
=zA2t
-END PGP SIGNATURE-

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: [tomcat7] rhel 6 - init.d script works; does not start on reboot

2014-01-15 Thread Mark Eggers

Comments inline:

On 1/15/2014 9:46 AM, Bush, Eddie wrote:

Great feedback, Mark! Thanks!

As this will be for a single app, I'm not concerned with having quite as 
complex of a setup as you do. The box does not seem to have selinux enabled:

[ebush@tuldgskap01 ~]$ selinuxenabled
[ebush@tuldgskap01 ~]$ echo $?
1


Not enabled. I think this is probably not wise (especially in production 
machines). We run with selinux enforcing on production and permissive on 
development boxes.




Is there something that would cause the script to be successfully invocable 
interactively and yet make it fail at boot? I'm thinking the answer is yes, 
based off of what I'm seeing. Perhaps sudo doesn't like being run by root?


Don't use sudo in a script. If you're running selinux use:

/sbin/runuser [user-name] -c [command]

If you're not running selinux use:

/sbin/su [user-name] -c [command]



Since I'll lead the dev team, I'll have teeth to make sure the app does not 
misbehave. I can't imagine why one would, as I've never had issues before. I 
suppose, if requests were still processing, a problem could occur. However, 
we'll use F5 and drain-stop the node prior to performing maintenance, so ... 
I'm going to take a simpler path than you've advocated but keep your thoughts 
around in case I do experience an issue :-)

I'll look into a more formal daemon mechanism. I think commons-daemon comes with tomcat. 
I'm trying to avoid many manual pieces like that, but working (and I define working as 
"it comes up after boot") is not optional!


Yes, it does come with Tomcat. However your script should work (wouldn't 
recommend it for production, but dev would be OK) provided you use 
/sbin/su or /sbin/runuser.


Thanks again! ... and thanks to the others who have provided feedback too! It 
is very much appreciated! My take-away: there's a standard way to launch a 
daemon, and you should be doing that!

Eddie


. . . . just my two cents
/mde/



-Original Message-
From: Mark Eggers [mailto:its_toas...@yahoo.com]
Sent: Wednesday, January 15, 2014 11:24 AM
To: Tomcat Users List
Subject: Re: [tomcat7] rhel 6 - init.d script works; does not start on reboot

See quick notes next to your script:

On 1/15/2014 8:53 AM, Bush, Eddie wrote:



-Original Message-
From: Daniel Mikusa [mailto:dmik...@gopivotal.com]
Sent: Wednesday, January 15, 2014 10:19 AM
To: Tomcat Users List
Subject: Re: [tomcat7] rhel 6 - init.d script works; does not start on
reboot

On Jan 15, 2014, at 11:01 AM, "Bush, Eddie"  wrote:




-Original Message-
From: Daniel Mikusa [mailto:dmik...@gopivotal.com]
Sent: Wednesday, January 15, 2014 9:54 AM
To: Tomcat Users List
Subject: Re: [tomcat7] rhel 6 - init.d script works; does not start
on reboot

On Jan 15, 2014, at 10:32 AM, "Bush, Eddie"  wrote:


Howdy, List!

I'm in a bit of a pickle here. I'm a senior dev, and quite good at that, but 
for my new client I'm also charged with configuring our machines. We're running 
on Tomcat 7, so I grabbed the tgz and installed it per the instructions.

Everything works great! ... until I reboot the server :) At that point, 
everything else comes up, but tomcat does not.

I have removed all logs and rebooted and see nothing notable in any
of the tomcat logs (because, of course, it did not start), nor can I
find anything in syslog or messages. The chkconfig command reports
that the script is configured to run for runlevel 2-5, and I've even
inspected the links in rc.d/rc*.d and they are linked to the init.d
script (which is the same danged script that works interactively via
"service tomcat start/stop"!)


Dan> Where did you get the init script from?
EB> Off the net somewhere, initially. I tweaked it to use sudo to
EB> change user to tomcat:tomcat though, and I changed the chkconfig
EB> declaration to be extremely similar to what nginx uses, since
EB> that works fine. chkconfig likes the script, and sets it up in
EB> what looks to be perfect form (comparing to other things). These
EB> are pretty standard scripts though, yes? They basically just
EB> delegate to the scripts distributed with tomcat, which all end up
EB> calling catalina.sh :-)


Dan> Since it's not standard, can you include it here?  It may be perfectly 
fine, but it would be nice to see it regardless.
EB> cat /etc/init.d/tomcat
#!/bin/bash

echo "Let's start Tomcat! ... because Tomcat rocks!" > /tmp/tomcat.log

# chkconfig: - 84 16
# description: Tomcat Start Stop Restart # processname: tomcat

### BEGIN INIT INFO
# Provides: tomcat
# Required-Start: $local_fs $remote_fs $network # Required-Stop:
$local_fs $remote_fs $network # Default-Start: 2 3 4 5 # Default-Stop:
0 1 6 # Short-Description: start stop and restart tomcat ### END INIT
INFO

JAVA_HOME=/usr/java/jdk1.7.0

RE: [tomcat7] rhel 6 - init.d script works; does not start on reboot

2014-01-15 Thread Terence M. Bandoian
On 1/15/2014 11:46 AM, Bush, Eddie wrote:
> Great feedback, Mark! Thanks!
>
> As this will be for a single app, I'm not concerned with having quite as 
> complex of a setup as you do. The box does not seem to have selinux enabled:
>
> [ebush@tuldgskap01 ~]$ selinuxenabled
> [ebush@tuldgskap01 ~]$ echo $?
> 1
>
> Is there something that would cause the script to be successfully invocable 
> interactively and yet make it fail at boot? I'm thinking the answer is yes, 
> based off of what I'm seeing. Perhaps sudo doesn't like being run by root?
>
> Since I'll lead the dev team, I'll have teeth to make sure the app does not 
> misbehave. I can't imagine why one would, as I've never had issues before. I 
> suppose, if requests were still processing, a problem could occur. However, 
> we'll use F5 and drain-stop the node prior to performing maintenance, so ... 
> I'm going to take a simpler path than you've advocated but keep your thoughts 
> around in case I do experience an issue :-)
>
> I'll look into a more formal daemon mechanism. I think commons-daemon comes 
> with tomcat. I'm trying to avoid many manual pieces like that, but working 
> (and I define working as "it comes up after boot") is not optional!
>
> Thanks again! ... and thanks to the others who have provided feedback too! It 
> is very much appreciated! My take-away: there's a standard way to launch a 
> daemon, and you should be doing that!
>
> Eddie
>


Hi, Eddie-

It's been a while but one script I used had the following start line:

daemon --user ${tomcat_user} ${tomcat_script} start ${tomcat_start_opts}

where daemon was a function defined in init.d/functions.  Within daemon,
runuser was used to execute the startup script.

-Terence Bandoian



-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



RE: [tomcat7] rhel 6 - init.d script works; does not start on reboot

2014-01-15 Thread Bush, Eddie
Great feedback, Mark! Thanks!

As this will be for a single app, I'm not concerned with having quite as 
complex of a setup as you do. The box does not seem to have selinux enabled:

[ebush@tuldgskap01 ~]$ selinuxenabled
[ebush@tuldgskap01 ~]$ echo $?
1

Is there something that would cause the script to be successfully invocable 
interactively and yet make it fail at boot? I'm thinking the answer is yes, 
based off of what I'm seeing. Perhaps sudo doesn't like being run by root?

Since I'll lead the dev team, I'll have teeth to make sure the app does not 
misbehave. I can't imagine why one would, as I've never had issues before. I 
suppose, if requests were still processing, a problem could occur. However, 
we'll use F5 and drain-stop the node prior to performing maintenance, so ... 
I'm going to take a simpler path than you've advocated but keep your thoughts 
around in case I do experience an issue :-)

I'll look into a more formal daemon mechanism. I think commons-daemon comes 
with tomcat. I'm trying to avoid many manual pieces like that, but working (and 
I define working as "it comes up after boot") is not optional!

Thanks again! ... and thanks to the others who have provided feedback too! It 
is very much appreciated! My take-away: there's a standard way to launch a 
daemon, and you should be doing that!

Eddie

-Original Message-
From: Mark Eggers [mailto:its_toas...@yahoo.com] 
Sent: Wednesday, January 15, 2014 11:24 AM
To: Tomcat Users List
Subject: Re: [tomcat7] rhel 6 - init.d script works; does not start on reboot

See quick notes next to your script:

On 1/15/2014 8:53 AM, Bush, Eddie wrote:
>
>
> -Original Message-
> From: Daniel Mikusa [mailto:dmik...@gopivotal.com]
> Sent: Wednesday, January 15, 2014 10:19 AM
> To: Tomcat Users List
> Subject: Re: [tomcat7] rhel 6 - init.d script works; does not start on 
> reboot
>
> On Jan 15, 2014, at 11:01 AM, "Bush, Eddie"  wrote:
>
>>
>>
>> -Original Message-
>> From: Daniel Mikusa [mailto:dmik...@gopivotal.com]
>> Sent: Wednesday, January 15, 2014 9:54 AM
>> To: Tomcat Users List
>> Subject: Re: [tomcat7] rhel 6 - init.d script works; does not start 
>> on reboot
>>
>> On Jan 15, 2014, at 10:32 AM, "Bush, Eddie"  wrote:
>>
>>> Howdy, List!
>>>
>>> I'm in a bit of a pickle here. I'm a senior dev, and quite good at that, 
>>> but for my new client I'm also charged with configuring our machines. We're 
>>> running on Tomcat 7, so I grabbed the tgz and installed it per the 
>>> instructions.
>>>
>>> Everything works great! ... until I reboot the server :) At that point, 
>>> everything else comes up, but tomcat does not.
>>>
>>> I have removed all logs and rebooted and see nothing notable in any 
>>> of the tomcat logs (because, of course, it did not start), nor can I 
>>> find anything in syslog or messages. The chkconfig command reports 
>>> that the script is configured to run for runlevel 2-5, and I've even 
>>> inspected the links in rc.d/rc*.d and they are linked to the init.d 
>>> script (which is the same danged script that works interactively via 
>>> "service tomcat start/stop"!)
>>
>> Dan> Where did you get the init script from?
>> EB> Off the net somewhere, initially. I tweaked it to use sudo to 
>> EB> change user to tomcat:tomcat though, and I changed the chkconfig 
>> EB> declaration to be extremely similar to what nginx uses, since 
>> EB> that works fine. chkconfig likes the script, and sets it up in 
>> EB> what looks to be perfect form (comparing to other things). These 
>> EB> are pretty standard scripts though, yes? They basically just 
>> EB> delegate to the scripts distributed with tomcat, which all end up 
>> EB> calling catalina.sh :-)
>
> Dan> Since it's not standard, can you include it here?  It may be perfectly 
> fine, but it would be nice to see it regardless.
> EB> cat /etc/init.d/tomcat
> #!/bin/bash
>
> echo "Let's start Tomcat! ... because Tomcat rocks!" > /tmp/tomcat.log
>
> # chkconfig: - 84 16
> # description: Tomcat Start Stop Restart # processname: tomcat
>
> ### BEGIN INIT INFO
> # Provides: tomcat
> # Required-Start: $local_fs $remote_fs $network # Required-Stop: 
> $local_fs $remote_fs $network # Default-Start: 2 3 4 5 # Default-Stop: 
> 0 1 6 # Short-Description: start stop and restart tomcat ### END INIT 
> INFO
>
> JAVA_HOME=/usr/java/jdk1.7.0_45
> export JAVA_HOME
> PATH=$JAVA_HOME/bin:$PATH
> export PATH
> CATALINA_HOME

Re: [tomcat7] rhel 6 - init.d script works; does not start on reboot

2014-01-15 Thread Mark Eggers

See quick notes next to your script:

On 1/15/2014 8:53 AM, Bush, Eddie wrote:



-Original Message-
From: Daniel Mikusa [mailto:dmik...@gopivotal.com]
Sent: Wednesday, January 15, 2014 10:19 AM
To: Tomcat Users List
Subject: Re: [tomcat7] rhel 6 - init.d script works; does not start on reboot

On Jan 15, 2014, at 11:01 AM, "Bush, Eddie"  wrote:




-Original Message-
From: Daniel Mikusa [mailto:dmik...@gopivotal.com]
Sent: Wednesday, January 15, 2014 9:54 AM
To: Tomcat Users List
Subject: Re: [tomcat7] rhel 6 - init.d script works; does not start on reboot

On Jan 15, 2014, at 10:32 AM, "Bush, Eddie"  wrote:


Howdy, List!

I'm in a bit of a pickle here. I'm a senior dev, and quite good at that, but 
for my new client I'm also charged with configuring our machines. We're running 
on Tomcat 7, so I grabbed the tgz and installed it per the instructions.

Everything works great! ... until I reboot the server :) At that point, 
everything else comes up, but tomcat does not.

I have removed all logs and rebooted and see nothing notable in any of the tomcat logs 
(because, of course, it did not start), nor can I find anything in syslog or messages. 
The chkconfig command reports that the script is configured to run for runlevel 2-5, and 
I've even inspected the links in rc.d/rc*.d and they are linked to the init.d script 
(which is the same danged script that works interactively via "service tomcat 
start/stop"!)


Dan> Where did you get the init script from?
EB> Off the net somewhere, initially. I tweaked it to use sudo to change user 
to tomcat:tomcat though, and I changed the chkconfig declaration to be extremely 
similar to what nginx uses, since that works fine. chkconfig likes the script, and 
sets it up in what looks to be perfect form (comparing to other things). These are 
pretty standard scripts though, yes? They basically just delegate to the scripts 
distributed with tomcat, which all end up calling catalina.sh :-)


Dan> Since it's not standard, can you include it here?  It may be perfectly 
fine, but it would be nice to see it regardless.
EB> cat /etc/init.d/tomcat
#!/bin/bash

echo "Let's start Tomcat! ... because Tomcat rocks!" > /tmp/tomcat.log

# chkconfig: - 84 16
# description: Tomcat Start Stop Restart
# processname: tomcat

### BEGIN INIT INFO
# Provides: tomcat
# Required-Start: $local_fs $remote_fs $network
# Required-Stop: $local_fs $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start stop and restart tomcat
### END INIT INFO

JAVA_HOME=/usr/java/jdk1.7.0_45
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
CATALINA_HOME=/usr/share/apache-tomcat-7.0.47

echo "JAVA_HOME = $JAVA_HOME" >> /tmp/tomcat.log
echo "PATH = $PATH" >> /tmp/tomcat.log
echo "CATALINA_HOME = $CATALINA_HOME" >> /tmp/tomcat.log

case $1 in
start)
echo "START requested!" >> /tmp/tomcat.log
sudo -g tomcat -u tomcat sh $CATALINA_HOME/bin/startup.sh
;;
stop)
echo "STOP requested!" >> /tmp/tomcat.log
sudo -g tomcat -u tomcat sh $CATALINA_HOME/bin/shutdown.sh
;;
restart)
echo "RESTART requested!" >> /tmp/tomcat.log
sudo -g tomcat -u tomcat sh $CATALINA_HOME/bin/shutdown.sh
sudo -g tomcat -u tomcat sh $CATALINA_HOME/bin/startup.sh
;;
esac
exit 0



This won't work.

1. Use JRE_HOME and set it to where your JRE is installed

Technically you can use JAVA_HOME, but Tomcat no longer needs javac 
(unless you've changed the stock configuration).


2. sudo won't work if you have SELinux enabled

use /sbin/runuser

3. I use catalina.sh

My command to start Tomcat ends up looking like this:

$SU - $TOMCAT_USER -c "${CONFIG_OPTS} ${CAT_PID} ${TOMCAT_INSTANCE}" 
start > $SERVICE_LOG 2>1&!


(obviously all on one line)

where:

$SU is the proper su command (/sbin/su or /sbin/runuser)
$TOMCAT_USER is the tomcat user
$CONFIG_OPTS contains all of the options:
 CATALINA_HOME
 CATALINA_BASE
 JRE_HOME
$CAT_PID is the pid file to write
$TOMCAT_INSTANCE is $CATALINA_HOME/bin/catalina.sh
$SERVICE_LOG is where I write my service startup and shutdown messages

I run multiple Tomcats from one CATALINA_HOME (see RUNNING.txt in the 
Tomcat distribution). Each Tomcat gets its own init script, and each 
init script reads a corresponding configuration file that sets 
CATALINA_HOME, CATALINA_BASE, the PID file, and JRE_HOME. That way I can 
run multiple versions of Tomcat with different JREs and still use one 
init script (copied to a new service name for each Tomcat).


While the stop command is the same as the start command (just substitute 
stop for start), there are some other issues you have to worry about.


1. Is it really running?
2. Did it really stop?

Some misbehaving applications make it difficult to stop Tomcat. I 
currently loop for a configurable a

Re: [tomcat7] rhel 6 - init.d script works; does not start on reboot

2014-01-15 Thread Mark Eggers

Some replies inline:

Summary:

I run lots of Tomcats from init scripts on CentOS 6.5. The init script
is . . . ugly. Mine is 500+ lines long.

I'd recommend looking at commons-daemon. Tomcat comes with a script that
can be used as a starting point (daemon.sh)

http://tomcat.apache.org/tomcat-7.0-doc/setup.html#Unix_daemon

On 1/15/2014 8:19 AM, Daniel Mikusa wrote:

On Jan 15, 2014, at 11:01 AM, "Bush, Eddie" 
wrote:




-Original Message- From: Daniel Mikusa
[mailto:dmik...@gopivotal.com] Sent: Wednesday, January 15, 2014
9:54 AM To: Tomcat Users List Subject: Re: [tomcat7] rhel 6 -
init.d script works; does not start on reboot

On Jan 15, 2014, at 10:32 AM, "Bush, Eddie"
 wrote:


Howdy, List!

I'm in a bit of a pickle here. I'm a senior dev, and quite good
at that, but for my new client I'm also charged with configuring
our machines. We're running on Tomcat 7, so I grabbed the tgz and
installed it per the instructions.

Everything works great! ... until I reboot the server :) At that
point, everything else comes up, but tomcat does not.

I have removed all logs and rebooted and see nothing notable in
any of the tomcat logs (because, of course, it did not start),
nor can I find anything in syslog or messages. The chkconfig
command reports that the script is configured to run for runlevel
2-5, and I've even inspected the links in rc.d/rc*.d and they are
linked to the init.d script (which is the same danged script that
works interactively via "service tomcat start/stop"!)


Dan> Where did you get the init script from? EB> Off the net
somewhere, initially. I tweaked it to use sudo to change user to
tomcat:tomcat though, and I changed the chkconfig declaration to be
extremely similar to what nginx uses, since that works fine.
chkconfig likes the script, and sets it up in what looks to be
perfect form (comparing to other things). These are pretty standard
scripts though, yes? They basically just delegate to the scripts
distributed with tomcat, which all end up calling catalina.sh :-)


Since it's not standard, can you include it here?  It may be
perfectly fine, but it would be nice to see it regardless.



EB, one of the places I started with was the Tomcat script in the 
distribution package. Unfortunately, that way lies madness.



Also, can you confirm that the init script is actually being called?
It would be helpful to know how far things get before they break
down.  Since you've said that *no* Tomcat logs get created, I would
expect that things don't get very far.  Maybe add some logging / echo
statements to see what does and doesn't run.



Some things to consider when you're writing your Tomcat script:

1. Do you run with SELinux enabled?

If so, use /sbin/runuser instead of su

2. Do you write your PID files in the standard RedHat locations?

If so, make sure that the directory is read/write for the user Tomcat is 
run under.


3. Do you write any service startup and shutdown logs?

If so, make sure that the directory is read/write for the user Tomcat is 
run under.






This may be more of a *nix question than a tomcat question, but I
thought I'd try here first since it is in the context of tomcat
itself.

Thoughts? Suggestions?


Dan> Have you verified that user / permissions are set correct to
run as a service?  Keep in mind that running as a service may be
running Tomcat as a different user. EB> I guess I'm not sure what
you mean here. Apologies. However, I did chown -R tomcat:tomcat on
the entire install. First start after that reminded me I needed to
clean the logs out before expecting it to work :-) but I can now
start this interactively using "sudo service tomcat start" and stop
it, etc. EB> Perhaps I should add that I was raised on Unix,
including being schooled in Unix administration. It's been years,
but I do have a decent amount of experience with Unix, shell
scripting, etc. :-)


Sounds like you've got the general idea of what I was saying here.
Good to know how the permissions are set on the Tomcat directory.

Dan



Dan


I have Google'd myself to death! I'm at my wits end! I'm honestly
at the point of thinking about punting this issue until another
day or possibly resigning to making sure that any workflow which
involves a server reboot includes a step for starting tomcat
(yuck!).

Thanks in advance for any input!

Eddie


There are a lot of other housekeeping things to do before starting up 
Tomcat. Also, if you have misbehaving applications you'll want to write 
fairly robust shutdown and restart functions.


However, first things first:

1. Make sure you're using the correct su command (surunner or su)
2. Make sure all of the ancillary directories (see above) have the
   right permissions

When I searched for a startup script a few years ago, I couldn't find 
one either. I started with the CentOS distribution 

RE: [tomcat7] rhel 6 - init.d script works; does not start on reboot

2014-01-15 Thread Bush, Eddie


-Original Message-
From: Daniel Mikusa [mailto:dmik...@gopivotal.com] 
Sent: Wednesday, January 15, 2014 10:19 AM
To: Tomcat Users List
Subject: Re: [tomcat7] rhel 6 - init.d script works; does not start on reboot

On Jan 15, 2014, at 11:01 AM, "Bush, Eddie"  wrote:

> 
> 
> -Original Message-
> From: Daniel Mikusa [mailto:dmik...@gopivotal.com] 
> Sent: Wednesday, January 15, 2014 9:54 AM
> To: Tomcat Users List
> Subject: Re: [tomcat7] rhel 6 - init.d script works; does not start on reboot
> 
> On Jan 15, 2014, at 10:32 AM, "Bush, Eddie"  wrote:
> 
>> Howdy, List!
>> 
>> I'm in a bit of a pickle here. I'm a senior dev, and quite good at that, but 
>> for my new client I'm also charged with configuring our machines. We're 
>> running on Tomcat 7, so I grabbed the tgz and installed it per the 
>> instructions.
>> 
>> Everything works great! ... until I reboot the server :) At that point, 
>> everything else comes up, but tomcat does not.
>> 
>> I have removed all logs and rebooted and see nothing notable in any of the 
>> tomcat logs (because, of course, it did not start), nor can I find anything 
>> in syslog or messages. The chkconfig command reports that the script is 
>> configured to run for runlevel 2-5, and I've even inspected the links in 
>> rc.d/rc*.d and they are linked to the init.d script (which is the same 
>> danged script that works interactively via "service tomcat start/stop"!)
> 
> Dan> Where did you get the init script from?
> EB> Off the net somewhere, initially. I tweaked it to use sudo to change user 
> to tomcat:tomcat though, and I changed the chkconfig declaration to be 
> extremely similar to what nginx uses, since that works fine. chkconfig likes 
> the script, and sets it up in what looks to be perfect form (comparing to 
> other things). These are pretty standard scripts though, yes? They basically 
> just delegate to the scripts distributed with tomcat, which all end up 
> calling catalina.sh :-)

Dan> Since it's not standard, can you include it here?  It may be perfectly 
fine, but it would be nice to see it regardless.
EB> cat /etc/init.d/tomcat
#!/bin/bash

echo "Let's start Tomcat! ... because Tomcat rocks!" > /tmp/tomcat.log

# chkconfig: - 84 16
# description: Tomcat Start Stop Restart
# processname: tomcat

### BEGIN INIT INFO
# Provides: tomcat
# Required-Start: $local_fs $remote_fs $network
# Required-Stop: $local_fs $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start stop and restart tomcat
### END INIT INFO

JAVA_HOME=/usr/java/jdk1.7.0_45
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
CATALINA_HOME=/usr/share/apache-tomcat-7.0.47

echo "JAVA_HOME = $JAVA_HOME" >> /tmp/tomcat.log
echo "PATH = $PATH" >> /tmp/tomcat.log
echo "CATALINA_HOME = $CATALINA_HOME" >> /tmp/tomcat.log

case $1 in
start)
echo "START requested!" >> /tmp/tomcat.log
sudo -g tomcat -u tomcat sh $CATALINA_HOME/bin/startup.sh
;;
stop)
echo "STOP requested!" >> /tmp/tomcat.log
sudo -g tomcat -u tomcat sh $CATALINA_HOME/bin/shutdown.sh
;;
restart)
echo "RESTART requested!" >> /tmp/tomcat.log
sudo -g tomcat -u tomcat sh $CATALINA_HOME/bin/shutdown.sh
sudo -g tomcat -u tomcat sh $CATALINA_HOME/bin/startup.sh
;;
esac
exit 0

Dan> Also, can you confirm that the init script is actually being called?  It 
would be helpful to know how far things get before they break down.  Since 
you've said that *no* Tomcat logs get created, I would expect that things don't 
get very far.  Maybe add some logging / echo statements to see what does and 
doesn't run.
EB> Genius suggestion. I'm disappointed I didn't think about it. Turns out that 
it does try to start.
EB> cat /tmp/tomcat.log

Let's start Tomcat! ... because Tomcat rocks!
JAVA_HOME = /usr/java/jdk1.7.0_45
PATH = /usr/java/jdk1.7.0_45/bin:/sbin:/usr/sbin:/bin:/usr/bin
CATALINA_HOME = /usr/share/apache-tomcat-7.0.47
START requested!

EB> So it feels like that sudo command fails. However, I see nothing in 
/var/log/sudolog. Is sudo the issue?
EB> I was trying su in the script, but it complained about the account not 
having login enabled. sudo worked interactively, so I assumed that ought to 
work!
EB> I looked at adding jsvc, but I don't have a lot of control over channels 
that the machine is subscribed to, and that seems to be in the optional channel.
EB> I have (rhel6) a daemon command, and I had considered updating to use that, 
but the sudo works interactively so I stuck with that (if it ain't broke, 
right?)
> 
>> 
>> This may be more of a *nix question than a tomcat question, bu

Re: [tomcat7] rhel 6 - init.d script works; does not start on reboot

2014-01-15 Thread Daniel Mikusa
On Jan 15, 2014, at 11:01 AM, "Bush, Eddie"  wrote:

> 
> 
> -Original Message-
> From: Daniel Mikusa [mailto:dmik...@gopivotal.com] 
> Sent: Wednesday, January 15, 2014 9:54 AM
> To: Tomcat Users List
> Subject: Re: [tomcat7] rhel 6 - init.d script works; does not start on reboot
> 
> On Jan 15, 2014, at 10:32 AM, "Bush, Eddie"  wrote:
> 
>> Howdy, List!
>> 
>> I'm in a bit of a pickle here. I'm a senior dev, and quite good at that, but 
>> for my new client I'm also charged with configuring our machines. We're 
>> running on Tomcat 7, so I grabbed the tgz and installed it per the 
>> instructions.
>> 
>> Everything works great! ... until I reboot the server :) At that point, 
>> everything else comes up, but tomcat does not.
>> 
>> I have removed all logs and rebooted and see nothing notable in any of the 
>> tomcat logs (because, of course, it did not start), nor can I find anything 
>> in syslog or messages. The chkconfig command reports that the script is 
>> configured to run for runlevel 2-5, and I've even inspected the links in 
>> rc.d/rc*.d and they are linked to the init.d script (which is the same 
>> danged script that works interactively via "service tomcat start/stop"!)
> 
> Dan> Where did you get the init script from?
> EB> Off the net somewhere, initially. I tweaked it to use sudo to change user 
> to tomcat:tomcat though, and I changed the chkconfig declaration to be 
> extremely similar to what nginx uses, since that works fine. chkconfig likes 
> the script, and sets it up in what looks to be perfect form (comparing to 
> other things). These are pretty standard scripts though, yes? They basically 
> just delegate to the scripts distributed with tomcat, which all end up 
> calling catalina.sh :-)

Since it's not standard, can you include it here?  It may be perfectly fine, 
but it would be nice to see it regardless.

Also, can you confirm that the init script is actually being called?  It would 
be helpful to know how far things get before they break down.  Since you've 
said that *no* Tomcat logs get created, I would expect that things don't get 
very far.  Maybe add some logging / echo statements to see what does and 
doesn't run.

> 
>> 
>> This may be more of a *nix question than a tomcat question, but I thought 
>> I'd try here first since it is in the context of tomcat itself.
>> 
>> Thoughts? Suggestions?
> 
> Dan> Have you verified that user / permissions are set correct to run as a 
> service?  Keep in mind that running as a service may be running Tomcat as a 
> different user.
> EB> I guess I'm not sure what you mean here. Apologies. However, I did chown 
> -R tomcat:tomcat on the entire install. First start after that reminded me I 
> needed to clean the logs out before expecting it to work :-) but I can now 
> start this interactively using "sudo service tomcat start" and stop it, etc.
> EB> Perhaps I should add that I was raised on Unix, including being schooled 
> in Unix administration. It's been years, but I do have a decent amount of 
> experience with Unix, shell scripting, etc. :-)

Sounds like you've got the general idea of what I was saying here.  Good to 
know how the permissions are set on the Tomcat directory.

Dan

> 
> Dan
> 
>> I have Google'd myself to death! I'm at my wits end! I'm honestly at the 
>> point of thinking about punting this issue until another day or possibly 
>> resigning to making sure that any workflow which involves a server reboot 
>> includes a step for starting tomcat (yuck!).
>> 
>> Thanks in advance for any input!
>> 
>> Eddie
>> 
>> 
> 
> 
> -
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
> 
> 
> -
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
> 


-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



RE: [tomcat7] rhel 6 - init.d script works; does not start on reboot

2014-01-15 Thread Bush, Eddie
Gene - chkconfig thinks everything is copasetic and reports that it should be 
starting in runlevel 2-5. All the links have been created properly in the rc#.d 
directories that correspond to runlevel 2-5. They all point to the init.d 
script :-) and are permissioned identically to other links/scripts.

-Original Message-
From: Gene Matthews [mailto:genem8...@icloud.com] 
Sent: Wednesday, January 15, 2014 10:02 AM
To: Tomcat Users List
Subject: Re: [tomcat7] rhel 6 - init.d script works; does not start on reboot



On Jan 15, 2014, at 10:32 AM, Bush, Eddie  wrote:

> Everything works great! ... until I reboot the server :) At that point, 
> everything else comes up, but tomcat does not.
> 

Not sure what OS you are running, but in CentOS you can use the chkconfig 
command to see at what run levels that script is set to start.  You can use the 
same command to set the script to start at certain run levels.

Gene
-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org


-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



RE: [tomcat7] rhel 6 - init.d script works; does not start on reboot

2014-01-15 Thread Bush, Eddie


-Original Message-
From: Daniel Mikusa [mailto:dmik...@gopivotal.com] 
Sent: Wednesday, January 15, 2014 9:54 AM
To: Tomcat Users List
Subject: Re: [tomcat7] rhel 6 - init.d script works; does not start on reboot

On Jan 15, 2014, at 10:32 AM, "Bush, Eddie"  wrote:

> Howdy, List!
> 
> I'm in a bit of a pickle here. I'm a senior dev, and quite good at that, but 
> for my new client I'm also charged with configuring our machines. We're 
> running on Tomcat 7, so I grabbed the tgz and installed it per the 
> instructions.
> 
> Everything works great! ... until I reboot the server :) At that point, 
> everything else comes up, but tomcat does not.
> 
> I have removed all logs and rebooted and see nothing notable in any of the 
> tomcat logs (because, of course, it did not start), nor can I find anything 
> in syslog or messages. The chkconfig command reports that the script is 
> configured to run for runlevel 2-5, and I've even inspected the links in 
> rc.d/rc*.d and they are linked to the init.d script (which is the same danged 
> script that works interactively via "service tomcat start/stop"!)

Dan> Where did you get the init script from?
EB> Off the net somewhere, initially. I tweaked it to use sudo to change user 
to tomcat:tomcat though, and I changed the chkconfig declaration to be 
extremely similar to what nginx uses, since that works fine. chkconfig likes 
the script, and sets it up in what looks to be perfect form (comparing to other 
things). These are pretty standard scripts though, yes? They basically just 
delegate to the scripts distributed with tomcat, which all end up calling 
catalina.sh :-)

> 
> This may be more of a *nix question than a tomcat question, but I thought I'd 
> try here first since it is in the context of tomcat itself.
> 
> Thoughts? Suggestions?

Dan> Have you verified that user / permissions are set correct to run as a 
service?  Keep in mind that running as a service may be running Tomcat as a 
different user.
EB> I guess I'm not sure what you mean here. Apologies. However, I did chown -R 
tomcat:tomcat on the entire install. First start after that reminded me I 
needed to clean the logs out before expecting it to work :-) but I can now 
start this interactively using "sudo service tomcat start" and stop it, etc.
EB> Perhaps I should add that I was raised on Unix, including being schooled in 
Unix administration. It's been years, but I do have a decent amount of 
experience with Unix, shell scripting, etc. :-)

Dan

> I have Google'd myself to death! I'm at my wits end! I'm honestly at the 
> point of thinking about punting this issue until another day or possibly 
> resigning to making sure that any workflow which involves a server reboot 
> includes a step for starting tomcat (yuck!).
> 
> Thanks in advance for any input!
> 
> Eddie
> 
> 


-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org


-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: [tomcat7] rhel 6 - init.d script works; does not start on reboot

2014-01-15 Thread Gene Matthews


On Jan 15, 2014, at 10:32 AM, Bush, Eddie  wrote:

> Everything works great! ... until I reboot the server :) At that point, 
> everything else comes up, but tomcat does not.
> 

Not sure what OS you are running, but in CentOS you can use the chkconfig 
command to see at what run levels that script is set to start.  You can use the 
same command to set the script to start at certain run levels.

Gene
-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: [tomcat7] rhel 6 - init.d script works; does not start on reboot

2014-01-15 Thread Daniel Mikusa
On Jan 15, 2014, at 10:32 AM, "Bush, Eddie"  wrote:

> Howdy, List!
> 
> I'm in a bit of a pickle here. I'm a senior dev, and quite good at that, but 
> for my new client I'm also charged with configuring our machines. We're 
> running on Tomcat 7, so I grabbed the tgz and installed it per the 
> instructions.
> 
> Everything works great! ... until I reboot the server :) At that point, 
> everything else comes up, but tomcat does not.
> 
> I have removed all logs and rebooted and see nothing notable in any of the 
> tomcat logs (because, of course, it did not start), nor can I find anything 
> in syslog or messages. The chkconfig command reports that the script is 
> configured to run for runlevel 2-5, and I've even inspected the links in 
> rc.d/rc*.d and they are linked to the init.d script (which is the same danged 
> script that works interactively via "service tomcat start/stop"!)

Where did you get the init script from?  

> 
> This may be more of a *nix question than a tomcat question, but I thought I'd 
> try here first since it is in the context of tomcat itself.
> 
> Thoughts? Suggestions?

Have you verified that user / permissions are set correct to run as a service?  
Keep in mind that running as a service may be running Tomcat as a different 
user.

Dan

> I have Google'd myself to death! I'm at my wits end! I'm honestly at the 
> point of thinking about punting this issue until another day or possibly 
> resigning to making sure that any workflow which involves a server reboot 
> includes a step for starting tomcat (yuck!).
> 
> Thanks in advance for any input!
> 
> Eddie
> 
> 


-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



[tomcat7] rhel 6 - init.d script works; does not start on reboot

2014-01-15 Thread Bush, Eddie
Howdy, List!

I'm in a bit of a pickle here. I'm a senior dev, and quite good at that, but 
for my new client I'm also charged with configuring our machines. We're running 
on Tomcat 7, so I grabbed the tgz and installed it per the instructions.

Everything works great! ... until I reboot the server :) At that point, 
everything else comes up, but tomcat does not.

I have removed all logs and rebooted and see nothing notable in any of the 
tomcat logs (because, of course, it did not start), nor can I find anything in 
syslog or messages. The chkconfig command reports that the script is configured 
to run for runlevel 2-5, and I've even inspected the links in rc.d/rc*.d and 
they are linked to the init.d script (which is the same danged script that 
works interactively via "service tomcat start/stop"!)

This may be more of a *nix question than a tomcat question, but I thought I'd 
try here first since it is in the context of tomcat itself.

Thoughts? Suggestions?

I have Google'd myself to death! I'm at my wits end! I'm honestly at the point 
of thinking about punting this issue until another day or possibly resigning to 
making sure that any workflow which involves a server reboot includes a step 
for starting tomcat (yuck!).

Thanks in advance for any input!

Eddie