3

I've installed Tomcat 9 on Ubuntu 18.04, and trying to add it to service.

However, unlike other users, tomcat.pid file doesn't exist anywhere. So my Tomcat service file generates an error.

[Unit]
Description=Apache Tomcat 9 Servlet Container
After=syslog.target network.target

[Service]
User=nblizz
Group=nblizz
Type=forking
Environment=CATALINA_PID=/opt/apache-tomcat-9.0.16/tomcat.pid <--- !! (Not exist)
Environment=CATALINA_HOME=/opt/apache-tomcat-9.0.16
Environment=CATALINA_BASE=/opt/apache-tomcat-9.0.16
ExecStart=/opt/apache-tomcat-9.0.16/bin/startup.sh
ExecStop=/opt/apache-tomcat-9.0.16/bin/shutdown.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

Running Tomcat is fine, but error message is displayed when stopping tomcat.

● apache-tomcat.service - Apache Tomcat 9 Servlet Container
   Loaded: loaded (/etc/systemd/system/apache-tomcat.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Sat 2019-03-16 01:30:39 KST; 1s ago
  Process: 1462 ExecStop=/opt/apache-tomcat-9.0.16/bin/shutdown.sh (code=exited, status=1/FAILURE) <--- !!
  Process: 545 ExecStart=/opt/apache-tomcat-9.0.16/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 573 (code=killed, signal=TERM)

Mar 16 01:17:29 ndelt-personal systemd[1]: Starting Apache Tomcat 9 Servlet Container...
Mar 16 01:17:29 ndelt-personal startup.sh[545]: Tomcat started.
Mar 16 01:17:29 ndelt-personal systemd[1]: Started Apache Tomcat 9 Servlet Container.
Mar 16 01:30:39 ndelt-personal systemd[1]: Stopping Apache Tomcat 9 Servlet Container...
Mar 16 01:30:39 ndelt-personal shutdown.sh[1462]: $CATALINA_PID was set but the specified file does not exist. Is Tomcat running? Stop aborted.
Mar 16 01:30:39 ndelt-personal systemd[1]: apache-tomcat.service: Control process exited, code=exited status=1
Mar 16 01:30:39 ndelt-personal systemd[1]: apache-tomcat.service: Failed with result 'exit-code'.
Mar 16 01:30:39 ndelt-personal systemd[1]: Stopped Apache Tomcat 9 Servlet Container.

Plus, the color of apache-tomcat.service file is different from the others. (https://i.stack.imgur.com/WnD3Y.png)

What is the problem?

EnDelt64
  • 147
  • 3
  • 10

1 Answers1

2

It looks like there was a change from v9.0.14 in the catalina.sh file

$ diff bin/catalina.sh ../tomcats/apache-tomcat-9.0.14/bin/catalina.sh

479c479

<       2\>\&1 \&\& echo \$! \>\“$catalina_pid_file\” \; \} $catalina_out_command “&”

>       2\>\&1 \& echo \$! \>\“$catalina_pid_file\” \; \} $catalina_out_command “&”

489c489

<       2\>\&1 \&\& echo \$! \>\“$catalina_pid_file\” \; \} $catalina_out_command “&”

>       2\>\&1 \& echo \$! \>\“$catalina_pid_file\” \; \} $catalina_out_command “&”

If you remove the extra ampersand there, the pid file is created as expected.