Meh. It's short and sweet and working systemd unit file. [Unit] Description=Apache Tomcat Web Application Container [Service] User=tomcat Group=tomcat ExecStart=/usr/share/tomcat/bin/catalina.sh run [Install] WantedBy=multi-user.target
On Wed, Mar 16, 2016 at 8:57 PM, Christopher Schultz <ch...@christopherschultz.net> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > jieryn, > > On 3/16/16 1:36 PM, jieryn wrote: >> http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/systemd-house > - -of-horror/tomcat.html > > Wow, >> > lots of ranting about environment variables and little-used PID > files. > > If the author only understood the reasons behind the way catalina.sh > works, he might not have embarrassed himself. > > It must be hard being so smart and important that you have to quit the > Internet for good[1]. > > - -chris > > [1] > http://homepage.ntlworld.com/jonathan.deboynepollard/contacting-the-auth > or.html#SMTP > >> On Wed, Mar 16, 2016 at 1:01 PM, Lyallex <lyal...@gmail.com> >> wrote: >>> 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.propertie > s >>> \ -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 >>> >> >> --------------------------------------------------------------------- >> >> > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org >> For additional commands, e-mail: users-h...@tomcat.apache.org >> > -----BEGIN PGP SIGNATURE----- > Comment: GPGTools - http://gpgtools.org > Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ > > iEYEARECAAYFAlbqAPMACgkQ9CaO5/Lv0PDQqwCbBUDR1aA8zo9iwC0iYh5XiyMn > 9lkAnRL+3KCHQ+POUIQQ4qrYhe8oHmOT > =8mSc > -----END PGP SIGNATURE----- > > --------------------------------------------------------------------- > 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