Why? What is the point? The server.xml has nothing to do with
integration with systemd.
-----------------
Daniel Savard


2016-03-19 1:40 GMT-04:00 Lyallex <lyal...@gmail.com>:
> Would you mind posting your server.xml, here is the relevant bit from mine.
>
>  <Service name="Catalina">
>
>     <Connector port="80" protocol="HTTP/1.1"
>                connectionTimeout="20000"
>                redirectPort="8443" />
>
>     <Engine name="Catalina" defaultHost="localhost">
>
>       <Realm className="org.apache.catalina.realm.LockOutRealm">
>
>         <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
> resourceName="UserDatabase"/>
>
>       </Realm>
>
>       <Host name="localhost"  appBase="webapps" unpackWARs="true"
> autoDeploy="true">
>
>         <Valve className="org.apache.catalina.valves.AccessLogValve"
> directory="logs"
>                prefix="localhost_access_log" suffix=".txt"
>                rotatable="false" pattern="combined" />
>       </Host>
>
>     </Engine>
>   </Service>
>
> On 18 March 2016 at 23:35, Daniel Savard <daniel.sav...@gmail.com> wrote:
>> I believe all distros have over engineered the scripts to start
>> Tomcat. Forget all the scripts from your distro, learn the
>> signification of the environment variables from the catalina.sh script
>> shipped with the default Tomcat version. Define your variables in a
>> file, this file is not a script, so you cannot reuse a previously
>> defined variable, feed your systemd service definition file with this
>> file in the service section as EnvironmentFile=/path/name/to/your/file
>> ExecStart=/path/to/catalina.sh start
>> ExecStop=/path/to/catalina.sh stop
>>
>> and you are done. You control everything from the environment file,
>> you can easily manage the environment variables without editing the
>> systemd's service file.
>>
>> It is much simpler than the OpenRC set of scripts at my humble
>> opinion. I am running Gentoo at home and RHEL at work and both distros
>> wrapped Tomcat into too many layers of scripts in order to make it
>> working with OpenRC while none of these are required to run and manage
>> Tomcat with systemd.
>>
>> In particular with Gentoo, I no longer use the Tomcat distro packaged
>> with Gentoo because they separated the servlet api from Tomcat and you
>> need to wrap things into layers of scripts to define the classpath
>> properly taking this into account, the vanilla classpath.sh file
>> distributed with Tomcat doesn't work and so one. Really, they did a
>> very bad job at integrating Tomcat.
>>
>> Here is my service file:
>>
>> [Unit]
>> Description=Tomcat 8 (Dev)
>> After=syslog.target
>> After=network.target
>>
>> [Service]
>> EnvironmentFile=/tomcat/tomcat-8-dev/bin/tomcat-8-dev.env
>> Type=forking
>> User=tomcat
>> Group=tomcat
>> ExecStart=/opt/apache-tomcat/apache-tomcat-8.0.32_ds/bin/catalina.sh start
>> ExecStop=/opt/apache-tomcat/apache-tomcat-8.0.32_ds/bin/catalina.sh stop
>>
>> [Install]
>> WantedBy=multi-user.target
>>
>>
>> And here is the content of my EnvironmentFile:
>>
>> CATALINA_HOME="/opt/apache-tomcat/apache-tomcat-8.0.32_ds"
>> CATALINA_BASE="/tomcat/tomcat-8-dev"
>> CATALINA_OUT="/var/log/tomcat-8-dev/catalina.out"
>> JAVA_HOME="/opt/oracle-jdk-bin-1.8.0.74"
>> CATALINA_PID="/var/run/tomcat-8-dev.pid"
>>
>>
>> -----------------
>> Daniel Savard
>>
>>
>> 2016-03-18 13:31 GMT-04:00 Lyallex <lyal...@gmail.com>:
>>> I thought you might be interested in the resolution to this.
>>>
>>> It turns out that we needed to reproduce the environment in tomcat.service
>>>
>>> For some reason
>>>
>>> ExecStart=/etc/rc.d/init.d/tomcat7 doesn't work
>>> (file shown at the end of this message)
>>>
>>> Instead, in  /etc/systemd/system/tomcat.service
>>> we have had to reproduce the environment in longhand to get it to work.
>>> It appears that systemd doesn't expand variables so I really need to
>>> investigate the systemd Environment thing a bit more.
>>> Anyway, when I shutdown -r now the server comes back up and tomcat is
>>> running at the unprivileged tomcat user on port 80 so that's a result
>>>
>>> ============== /etc/systemd/system/tomcat.service ============
>>> [Unit]
>>> Description=Apache Tomcat Web Application Container
>>> After=network.target
>>>
>>> [Service]
>>> Type=forking
>>> User=root
>>>
>>> ExecStart=/opt/apache-tomcat-7.0.42/bin/jsvc \
>>> -user tomcat \
>>> -home /opt/jdk1.7.0_45 \
>>> -Dcatalina.home=/opt/apache-tomcat-7.0.42 \
>>> -Dcatalina.base=/opt/apache-tomcat-7.0.42 \
>>> -Djava.io.tmpdir=/var/tmp \
>>> -Djava.awt.headless=true \
>>> -Xms512m \
>>> -Xmx1024m \
>>> -outfile /opt/apache-tomcat-7.0.42/logs/catalina.out \
>>> -errfile /opt/apache-tomcat-7.0.42/logs/catalina.err \
>>> -pidfile /var/run/tc7/jsvc.pid \
>>> -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \
>>> -Djava.util.logging.config.file=/opt/apache-tomcat-7.0.42/conf/logging.properties
>>> \
>>> -cp 
>>> /opt/apache-tomcat-7.0.42/bin/bootstrap.jar:/opt/apache-tomcat-7.0.42/bin/commons-daemon.jar:/opt/jdk1.7.0_45/lib/tools.jar:/opt/apache-tomcat-7.0.42/bin/tomcat-juli.jar
>>> \
>>> org.apache.catalina.startup.Bootstrap
>>>
>>> ExecStop=/bin/kill -9 /var/run/tc7/jsvc.pid
>>> ExecStopPost=/bin/rm -f /var/tc7lock/subsys/tomcat /var/run/tc7/jsvc.pid
>>>
>>> [Install]
>>> WantedBy=multi-user.target
>>>
>>>
>>> Oh happy day
>>> Thanks again to all responders
>>>
>>> Lyallex
>>>
>>> ========= /etc/rc.d/init.d/tomcat7  =========
>>>
>>> JAVA_HOME=/opt/jdk1.7.0_45
>>> CATALINA_HOME=/opt/apache-tomcat-7.0.42
>>> export JAVA_HOME CATALINA_HOME
>>> CLASSPATH=$CATALINA_HOME/bin/bootstrap.jar:$CATALINA_HOME/bin/commons-daemon.jar:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/bin/tomcat-juli.jar
>>> TOMCAT_USER=tomcat
>>> TMPDIR=/var/tmp
>>> PIDFILE=/var/run/tc7/jsvc.pid
>>>
>>>
>>> RC=0
>>>
>>> case "$1" in
>>>
>>>   start)
>>>
>>>    $CATALINA_HOME/bin/jsvc -user $TOMCAT_USER -home $JAVA_HOME
>>> -Dcatalina.home=/opt/apache-tomcat-7.0.42
>>> -Dcatalina.base=$CATALINA_HOME -Djava.io.tmpdir=$TMPDIR
>>> -Djava.awt.headless=true \
>>>      -Xms512m \
>>>      -Xmx1024m \
>>>      -outfile $CATALINA_HOME/logs/catalina.out \
>>>      -errfile $CATALINA_HOME/logs/catalina.err \
>>>      -pidfile '/var/run/tc7/jsvc.pid' \
>>>      -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \
>>>      -Djava.util.logging.config.file=$CATALINA_HOME/conf/logging.properties 
>>> \
>>>      -cp $CLASSPATH  \
>>>      org.apache.catalina.startup.Bootstrap
>>>
>>>     RC=$?
>>>
>>>     [ $RC = 0 ] && touch /var/tc7lock/subsys/tomcat
>>>     echo "starting tomcat7 on darkstar with:"
>>>     echo "JAVA_HOME=$JAVA_HOME"
>>>     echo "CATALINA_HOME=$CATALINA_HOME"
>>>     echo "CLASSPATH=$CLASSPATH"
>>>     echo "tomcat started"
>>>     ;;
>>>
>>>   stop)
>>>
>>>     PID=`cat /var/run/tc7/jsvc.pid`
>>>     kill $PID
>>>
>>>    RC=$?
>>>
>>>     [ $RC = 0 ] && rm -f /var/tc7lock/subsys/tomcat /var/run/tc7/jsvc.pid
>>>     echo "stopping tomcat7 on darkstar with:"
>>>     echo "JAVA_HOME=$JAVA_HOME"
>>>     echo "CATALINA_HOME=$CATALINA_HOME"
>>>     echo "CLASSPATH=$CLASSPATH"
>>>
>>>     echo "tomcat stopped"
>>>     ;;
>>>
>>>   *)
>>>         echo "Usage: $0 {start|stop}"
>>>         exit 1
>>> esac
>>> exit $RC
>>>
>>> ---------------------------------------------------------------------
>>> 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
>

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

Reply via email to