- From: Mark Nichols <
>
- To:
- Subject: [chef] Tomcat service restarts Tomcat on each chef-client run
- Date: Wed, 30 Jul 2014 07:51:33 -0500
Ohai Chefs,
I have a cookbook that installs Tomcat7, sets up an `/etc/init.d` service to
start, stop, or restart Tomcat, and provides a LWRP to deploy applications to
the instance from our Artifactory setup.
It all works with one caveat: Tomcat gets restarted every time the
chef-client daemon runs, or every 15 minutes in this case.
Here is the `default` recipe, which installs Tomcat and sets up the service:
# Create a tomcat user
user node['tomcat']['tomcat_user'] do
comment 'tomcat user'
system true
shell "/bin/false"
end
# Create home for Tomcat
directory "#{node['tomcat']['tomcat_home']}" do
owner node['tomcat']['tomcat_user']
group node['tomcat']['tomcat_user']
mode "0755"
recursive true
action :create
end
# use ark to extract the archive
ark "#{node['tomcat']['tomcat_version']}" do
path node['tomcat']['tomcat_home']
url node['tomcat']['tomcat_url']
version node['tomcat']['tomcat_version']
owner node['tomcat']['tomcat_user']
checksum node['tomcat']['checksum']
action [ :put ]
end
# Create /etc/init.d entry for Tomcat
template "#{node['tomcat']['service']}" do
source "tomcat7.erb"
mode "0755"
owner "root"
group "root"
end
# Tomcat Service
# Control whether Tomcat restarts automatically or not
if node['tomcat']['autostart']
service 'tomcat' do
# service_name "tomcat#{node['tomcat']['base_version']}"
service_name "tomcat7"
supports :restart => false, :reload => false, :start => true, :stop =>
true
action [ :start, :enable ]
notifies :run, 'execute[wait for tomcat]', :immediately
retries 4
retry_delay 30
end
end
execute 'wait for tomcat' do
command 'sleep 5'
action :nothing
end
I recently added the conditional `if node[‘tomcat’][‘autostart’]` around the
`service`. Even with that attribute set to `false` the service restarts with
every daemon run.
For completeness sake, here is the template I’m using for the `/etc/init.d`
script.
#!/bin/bash
#
### BEGIN INIT INFO
# Provides: tomcat7
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start/Stop Tomcat server
### END INIT INFO
PATH=/sbin:/bin:/usr/sbin:/usr/bin
if [ -f <%= node["tomcat"]["tomcat_conf"] %>/catalina.sh.includes ]; then
source <%= node["tomcat"]["tomcat_conf"] %>/catalina.sh.includes
fi
start() {
sh <%= node["tomcat"]["tomcat_bin"] %>/startup.sh
}
stop() {
sh <%= node["tomcat"]["tomcat_bin"] %>/catalina.sh stop -force
}
showconfig() {
echo ${JAVA_OPTS}
}
case $1 in
start|stop|showconfig) $1;;
restart) stop; sleep 2; start;;
*) echo "Run as $0 <start|stop|restart>"; exit 1;;
esac
Any ideas as to what I’m doing that is causing Tomcat to be restarted with
each daemon run?
Thanks in advance,
Mark
- [chef] Tomcat service restarts Tomcat on each chef-client run, Mark Nichols, 07/30/2014
Archive powered by MHonArc 2.6.16.