Apologies for dredging this up but I'm having some problems with this.
Any ideas much appreciated.

Ii have been forced to move from a version of centOS the used the old
way of doing things to a new version of CentOS that uses systemd. The
hosts can't or won't help because I'm using a 'non-standard setup'
Basically I'm using tomcat standalone on port 80 to serve up my site.
I use jsvc with a start/stop script in /etc/rc.d/init.d with symbolic
links in rc2.d, rc3.d. rc4.d and rc5.d This has been working
faultlessly for nearly 4 years.

I have installed Tomcat, Java and all required resources on the new
server, I have dulpicated the configuration in /etc but needless to
say when I restart the server Tomcat doesn't start

Starting from the command line as root with /etc/rc.d/init.d/tomcat7
works as it has always done and starts tomcat as root then switches to
an unprivileged, no login user (tomcat)

I followed your instructions and came up with the following

# touch /etc/systemd/system/tomcat.service
# nano /etc/systemd/system/tomcat.service

tomcat.service looks like this

Description=The Jakarta Apache/Tomcat Server

ExecStart=/etc/rc.d/init.d/tomcat7 start
ExecStop=/etc/rc.d/init.d/tomcat7 stop


# chmod 664 /etc/systemd/system/tomcat.service

[root@vps init.d]# systemctl daemon-reload

[root@vps init.d]# systemctl start tomcat.service
Job for tomcat.service failed because the control process exited with
error code. See "systemctl status tomcat.service" and "journalctl -xe"
for details.

[root@vps init.d]# systemctl status tomcat.service
 tomcat.service - The Jakarta Apache/Tomcat Server
   Loaded: loaded (/etc/systemd/system/tomcat.service; disabled;
vendor preset: disabled)
   Active: failed (Result: exit-code) since Wed 2016-03-16 16:40:55 GMT; 18s ago
  Process: 4596 ExecStart=/etc/rc.d/init.d/tomcat7 start (code=exited,

Mar 16 16:40:55 vps.example.com systemd[1]: Starting The Jakarta
Apache/Tomcat Server...
Mar 16 16:40:55 vps.example.com systemd[1]: tomcat.service: control
process exited, code=exited status=203
Mar 16 16:40:55 vps.example.com systemd[1]: Failed to start The
Jakarta Apache/Tomcat Server.
Mar 16 16:40:55 vps.example.com systemd[1]: Unit tomcat.service
entered failed state.
Mar 16 16:40:55 vps.example.com systemd[1]: tomcat.service failed.

tomcat7 fwiw

# chkconfig: - 71 19
# description:  Start up the Tomcat servlet engine.
# this is the startup file for the new version
# 24/10/2013 by lyallex
# use java 7
# JAVA_HOME=/usr/local/java/jdk1.6.0_07


case "$1" in


   $CATALINA_HOME/bin/jsvc -user $TOMCAT_USER -home $JAVA_HOME
-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  \


    [ $RC = 0 ] && touch /var/tc7lock/subsys/tomcat
    echo "starting tomcat7 on darkstar with:"
    echo "tomcat started"

    echo "tomcat started"


    PID=`cat /var/run/tc7/jsvc.pid`
    kill $PID


    [ $RC = 0 ] && rm -f /var/tc7lock/subsys/tomcat /var/run/tc7/jsvc.pid
    echo "stopping tomcat7 on darkstar with:"

    echo "tomcat stopped"

        echo "Usage: $0 {start|stop}"
        exit 1
exit $RC


On 5 June 2015 at 13:37, Ray Holme <rayho...@yahoo.com.invalid> wrote:
> That looks OK, but I would suggest the following.
> Put all the real stuff in a standard bash script with 3 parameters   start, 
> stop, restart- pretty much like the OLD system 5 way fo doing things.This has 
> the advantage of allowing you to add other things you might want to add AND 
> executing the script as root is pretty obvious. (I needed to add starting an 
> LibreOffice server and a few other daemons to get that going). Embed the 
> catalina start stop in that script.The just make the systemd script VERY 
> SIMPLY call your standard above start/stop script.
> e.g. my script name is S95tomcat and the systemd entry is trivial.
> here is tomcat.service:
> [Unit]
> Description=The Jakarta Apache/Tomcat Server
> After=network.target
> [Service]
> Type=forking
> ExecStart=/local/bin/S95tomcat start
> ExecReload=/local/bin/S95tomcat restart
> ExecStop=/local/bin/S95tomcat stop
> [Install]
> WantedBy=multi-user.target
>      On Thursday, June 4, 2015 9:31 PM, Dale Ogilvie 
> <dale_ogil...@trimble.com> wrote:
>  Hi all,
> I am trying to put together a systemd script for an install of the current 
> binary release tomcat7. Follows my current best effort, cobbled together from 
> the (RH)EL7 packaged version and some googling... I am trying to use the 
> unadulterated tomcat up/down scripts from the binary release.
> Any suggestions as to how this might be improved? I'm not sure if I am using 
> the right service type here, based on what catalina.sh is doing under the 
> hood. That said, it seems to work.
> Thanks
> Dale
> **** follows apache-tomcat.service
> # Systemd unit file for apache-tomcat
> #
> [Unit]
> Description=Apache Tomcat Web Application Container
> After=syslog.target network.target
> [Service]
> Type=forking
> PIDFile=/var/run/apache-tomcat/apache-tomcat.pid
> ExecStart=/opt/apache-tomcat/bin/startup.sh
> ExecStop=/opt/apache-tomcat/bin/shutdown.sh
> SuccessExitStatus=0
> User=apache-tomcat
> Group=apache-tomcat
> [Install]
> WantedBy=multi-user.target
> ***** follows setenv.sh commented out sections removed
> # Where your java installation lives
> JAVA_HOME="/usr/java/latest"
> # Where your tomcat installation lives
> CATALINA_BASE="/opt/apache-tomcat"
> CATALINA_HOME="/opt/apache-tomcat"
> CATALINA_OUT="/var/log/apache-tomcat/catalina.out"
> JASPER_HOME="/opt/apache-tomcat"
> CATALINA_TMPDIR="/opt/apache-tomcat/temp"
> # What user should run tomcat
> TOMCAT_USER="apache-tomcat"
> # Run tomcat under the Java Security Manager
> # Time to wait in seconds, before killing process
> # Whether to annoy the user with "attempting to shut down" messages or not
> # Set the TOMCAT_PID location
> CATALINA_PID="/var/run/apache-tomcat/apache-tomcat.pid"
> # Connector port is 8080 for this tomcat instance
> ---------------------------------------------------------------------
> 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