3

The os is running is Arch Linux x86-64. I'm trying to start tomcat7.service via systemctl start tomcat7.service, but it throws a error message:

Job for tomcat7.service failed because the control process exited with error code. See "systemctl status tomcat7.service" and "journalctl -xe" for details. 

When I execute systemctl status tomcat7.service, it shows this message:

● tomcat7.service - Tomcat 7 servlet container Loaded: loaded (/usr/lib/systemd/system/tomcat7.service; disabled; vendor preset: disabled) Active: failed (Result: exit-code) since Mon 2018-04-02 04:28:40 CEST; 2min 40s ago Process: 2979 ExecStop=/usr/bin/jsvc -pidfile /var/run/tomcat7.pid -stop org.apache.catalina.startup.Bootstrap (code=exited, status=255) Process: 2972 ExecStart=/usr/bin/jsvc -Dcatalina.home=${CATALINA_HOME} -Dcatalina.base=${CATALINA_BASE} -Djava.io.tmpdir=/var/tmp/tomcat7/temp -cp /usr/share/java/commons-daemon.jar:/usr/share/java/eclipse-ecj.> Main PID: 2977 abr 02 04:28:40 carlos-pc systemd[1]: Starting Tomcat 7 servlet container... abr 02 04:28:40 carlos-pc jsvc[2972]: Cannot find any VM in Java Home /usr/lib/jvm/default-runtime abr 02 04:28:40 carlos-pc systemd[1]: tomcat7.service: Can't open PID file /var/run/tomcat7.pid (yet?) after start: No such file or directory abr 02 04:28:40 carlos-pc systemd[1]: tomcat7.service: Supervising process 2977 which is not our child. We'll most likely not notice when it exits. abr 02 04:28:40 carlos-pc jsvc.exec[2976]: 2018-04-02 04:28:40 2977 jsvc.exec error: Cannot find any VM in Java Home /usr/lib/jvm/default-runtime 2018-04-02 04:28:40 2977 jsvc.exec error: Cannot locate JVM library file abr 02 04:28:40 carlos-pc systemd[1]: tomcat7.service: Control process exited, code=exited status=255 abr 02 04:28:40 carlos-pc systemd[1]: tomcat7.service: Killing process 2977 (n/a) with signal SIGKILL. abr 02 04:28:40 carlos-pc systemd[1]: tomcat7.service: Killing process 2977 (n/a) with signal SIGKILL. abr 02 04:28:40 carlos-pc systemd[1]: tomcat7.service: Failed with result 'exit-code'. abr 02 04:28:40 carlos-pc systemd[1]: Failed to start Tomcat 7 servlet container. 

If I make ls /usr/lib/jvm/default-runtime to check if I have a Java environment, it shows:

bin conf demo include jmods legal lib man release 

So, directory exists.

What could be happening? Thank you

4
  • wiki.archlinux.org/index.php/… Commented Apr 2, 2018 at 2:43
  • It gives the same error, but, instead of show /usr/lib/jvm/default-runtime, it shows /usr/lib/jvm/java-9-openjdk (as excepted) Commented Apr 2, 2018 at 2:56
  • Are you sure you have a Java installed in your Arch Linux? Check this page for more instructions. If you use the command archlinux-java status, does it list one or more versions of Java installed? Commented Apr 2, 2018 at 5:00
  • I think so. I can run and compile java programas via java and javac respectively. When I execute archlinux-java status, it is only show one version: java-9-openjdk (default) Commented Apr 2, 2018 at 6:09

1 Answer 1

1

You need to set java-8 or earlier as your default java version to work with tomcat on archlinux. Follow the arch wiki guide to get the correct version installed. https://wiki.archlinux.org/index.php/Java#Officially_supported_packages

To do that run:

sudo archlinux-java set java-8-openjdk 
5
  • I tried with java 8 and java 7 Commented Jul 6, 2018 at 19:28
  • Does the output of journalctl -xe change after trying to restart systemctl start tomcat<version#>.service ? Commented Jul 6, 2018 at 19:33
  • No. Also, I tried to stop and star the service again Commented Jul 6, 2018 at 19:34
  • I had the same problem, with tomcat8 on arch, and setting the default to java-8 fixed the problem for me. If you have the option to migrate to tomcat8, that may solve your problem. Commented Jul 6, 2018 at 19:38
  • At first time, I was working with tomcat8 Commented Jul 6, 2018 at 19:38

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.