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 /etc/rc.d/init.d 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 [Unit] Description=The Jakarta Apache/Tomcat Server After=network.target [Service] Type=forking ExecStart=/etc/rc.d/init.d/tomcat7 start ExecStop=/etc/rc.d/init.d/tomcat7 stop [Install] WantedBy=multi-user.target # 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, status=203/EXEC) 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 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" 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 TIA Lyallex 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" > > CATALINA_OPTS="-Xms1G -Xmx2G" > > # What user should run tomcat > TOMCAT_USER="apache-tomcat" > > # Run tomcat under the Java Security Manager > SECURITY_MANAGER="false" > > # Time to wait in seconds, before killing process > SHUTDOWN_WAIT="90" > > # Whether to annoy the user with "attempting to shut down" messages or not > SHUTDOWN_VERBOSE="false" > > # Set the TOMCAT_PID location > CATALINA_PID="/var/run/apache-tomcat/apache-tomcat.pid" > > # Connector port is 8080 for this tomcat instance > CONNECTOR_PORT="8080" > > > --------------------------------------------------------------------- > 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