-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 David,
On 1/22/19 18:52, David Filip wrote: > Hi All, > > I seem to be having troubles getting Tomcat 8.5 to start on an > Amazon Linux 2 server with systemctl. The problem seems to be > that after starting tomcat, it always immediately tries to shut > down. From /var/log: >> Jan 22 23:13:32 cloud systemd: Starting Tomcat 8.5 servlet >> container... > Jan 22 23:13:32 cloud startup.sh: Tomcat started. Jan 22 23:13:32 > cloud systemd: Started Tomcat 8.5 servlet container. Jan 22 > 23:13:33 cloud shutdown.sh: Jan 22, 2019 11:13:33 PM > org.apache.catalina.startup.Catalina stopServer Jan 22 23:13:33 > cloud shutdown.sh: SEVERE: Could not contact [localhost:[8005]]. > Tomcat may not be running. Jan 22 23:13:33 cloud shutdown.sh: Jan > 22, 2019 11:13:33 PM org.apache.catalina.startup.Catalina > stopServer Jan 22 23:13:33 cloud shutdown.sh: SEVERE: > Catalina.stop: Jan 22 23:13:33 cloud shutdown.sh: > java.net.ConnectException: Connection refused (Connection refused) > Jan 22 23:13:33 cloud shutdown.sh: at > java.net.PlainSocketImpl.socketConnect(Native Method) Jan 22 > 23:13:33 cloud shutdown.sh: at > java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.jav a:350) > > Jan 22 23:13:33 cloud shutdown.sh: at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImp l.java:206) > Jan 22 23:13:33 cloud shutdown.sh: at > java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java: 188) > > Jan 22 23:13:33 cloud shutdown.sh: at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) > Jan 22 23:13:33 cloud shutdown.sh: at > java.net.Socket.connect(Socket.java:589) Jan 22 23:13:33 cloud > shutdown.sh: at java.net.Socket.connect(Socket.java:538) Jan 22 > 23:13:33 cloud shutdown.sh: at > java.net.Socket.<init>(Socket.java:434) Jan 22 23:13:33 cloud > shutdown.sh: at java.net.Socket.<init>(Socket.java:211) Jan 22 > 23:13:33 cloud shutdown.sh: at > org.apache.catalina.startup.Catalina.stopServer(Catalina.java:503) > Jan 22 23:13:33 cloud shutdown.sh: at > sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) Jan 22 > 23:13:33 cloud shutdown.sh: at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.j ava:62) > > Jan 22 23:13:33 cloud shutdown.sh: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor Impl.java:43) > Jan 22 23:13:33 cloud shutdown.sh: at > java.lang.reflect.Method.invoke(Method.java:498) Jan 22 23:13:33 > cloud shutdown.sh: at > org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:406) > > Jan 22 23:13:33 cloud shutdown.sh: at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:498) > Jan 22 23:13:33 cloud shutdown.sh: The stop command failed. > Attempting to signal the process to stop through OS signal. Jan 22 > 23:13:34 cloud shutdown.sh: Tomcat stopped. > > However, I can manually start tomcat on the same server, which > works fine, e.g.: > > # cd /opt/tomcat/bin # ./catalina.sh start Using CATALINA_BASE: > /opt/tomcat Using CATALINA_HOME: /opt/tomcat Using > CATALINA_TMPDIR: /opt/tomcat/temp Using JRE_HOME: /usr Using > CLASSPATH: > /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar > Tomcat started. > > # ps -aef | grep java root 8598 1 50 23:17 pts/0 > 00:00:02 /usr/bin/java > -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties > -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager > -Djdk.tls.ephemeralDHKeySize=2048 > -Djava.protocol.handler.pkgs=org.apache.catalina.webresources > -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 > -Dignore.endorsed.dirs= -classpath > /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar > -Dcatalina.base=/opt/tomcat -Dcatalina.home=/opt/tomcat > -Djava.io.tmpdir=/opt/tomcat/temp > org.apache.catalina.startup.Bootstrap start > > And it stays running until I explicitly shut it down. However, > what is most odd is that I also have tomcat 8.5 running on a > DIFFERENT system, which was built with a generic CentOS 7.5 > download (vs. an Amazon Linux 2 EC2 server), but USING THE SAME > SERVICE FILE. I was under the impression that the Amazon Linux 2 > is based on CentOS 7. I think it's supposed to be "CentOS/RHEL Compatible" but not necessarily "based upon" one particular version of CentOS/RHEL. > Or, at least I can’t find the difference. And while Google’ing > around, I did find other mentions of the exact same problem, > whereby tomcat tries to immediately shut down after starting up, > but alas without a posted solution. I was wondering if anyone out > there might have come across this problem, and have any advice? I'll point out that Tomcat isn't just shutting down because it's unhappy about something. The shutdown.sh script is being invoked, probably by systemd. It would be great if you could just read the scripts to find out what's going on, but evidently scripts are so passe. I believe this is a problem with system and/or the configuration it's working with, not Tomcat itself. > Also, the one difference was that on CentOS 7 — which works — I am > using Oracle Java 8 java installed on /opt/java, and on AWS — which > does not work — I was using OpenJDK 8. However, I have also tried > installing the same Oracle Java 8 on Amazon Linux 2 in /opt/java, > and then changing: > > Environment="JAVA_HOME=/opt/java“ > > and have the exact same problem. So I am running out of things to > try! I've never had any problem with OpenJDK; that's unlikely to be the issue . > Actually, one other minor difference is that the CentOS 7.5 server > has tomcat 8.5.34 and the AWS server has tomcat 8.5.37, and I am > assuming that the difference in patch level is not relevant, but > am mentioning it nonetheless> Finally, nothing else is currently > running on port 8080, e.g.: > > # telnet localhost 8080 Trying 127.0.0.1... telnet: connect to > address 127.0.0.1: Connection refused > > The only thing I see written to /opt.tomcat/logs/catalina.out is: > > Java HotSpot(TM) 64-Bit Server VM warning: ignoring option > PermSize=256m; support was removed in 8.0 Java HotSpot(TM) 64-Bit > Server VM warning: ignoring option MaxPermSize=384m; support was > removed in 8.0 > > Which tells me that it is finding the JVM, but that I have to > remove the PermGen parameters (but I am leaving in as an indication > that the JVM is being run, but that the warning should not be > causing my problem because it is ignoring the obsolete > parameters).> I am documenting first what works (CentOS 7.5), > followed by what doesn’t work (AWS). If anyone has any ideas, or > can spot the difference, or has any ideas on what else I can check, > please let me know. If you look at the conf/server.xml files in both working and non-working environments, do they both have a "shutdown port" configured? What HTTP and./or AJP ports do they have configured? I'm wondering if systemd is trying to poll the process to see if it's "up" and that check is failing, causing it to pull the process down gracefully. - -chris -----BEGIN PGP SIGNATURE----- Comment: Using GnuPG with Thunderbird - https://www.enigmail.net/ iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAlxH3u4ACgkQHPApP6U8 pFhpyQ/+OiWpNTgS/LuxVJdA4M/K3I6WByx9mSUpaYMrjrSOX1iRP/nK8Sgo4zHD +FU//FvxFxmU9TMnZSkcTOEvm4oJVDyKmXOufhvK+RTzrEf+biEOm2JAF7vZPq+2 fVsIkC2KKCvbP6OkPMpKp0FSjuPEIYqgFCPeW1aIHIXO0n70BdQ94xAI5qBrtjfN fKeKpVvXrq7xvAUq+X2CApMkDvlt7rg1hc1qr4UIEynCQHJzPSv0sKCNzU5JxBb2 o5pnSHRG1MFHY4ceIcT8/7TRXCo899s3GH5Qfl1dsZfAqdSeSUGFZjluDFuEPorg FAil8y+fy26QG9g5LYi2NuVqIYwYM6lEPKepIuz9oPHikPVzoaFeuHKFSaKEbX8A X6DMCc1bqUdXSBmblXfS8QdXcV8M5ExlLYnJmuh1cAVjw+31geC9ElAVXCiYkdls 5pWCvd3GyvgmiaixFIG2La7ixw8Nj/clTJq7NBEBPp/w9DURIqI0PKMk38DE+Kvo ykmynJ84bc5lOToifRj6VRp/6QRLyXnVheUfx7zA4DffWLGwISyrYjesO9G3Y+cl yXR5g0zL/DAHoXCBQzEfSBtKJtXuUQvhL+w7h2j/VND8Jfq4F4h5maOuIhu5fb9G KIc0V8QeR00SQl1nKQIj0qTEMsKp8jS1k2enbOdESSeH3cyB/Us= =WFgM -----END PGP SIGNATURE----- --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org