Я только что установил Apache Tomcat9 на свой компьютер, в основном следуя этим инструкциям, но я действительно застрял здесь с управлением пользователями.
Моя среда: Ubuntu 20.04, Java 11 (There is only one alternative in link group java (providing /usr/bin/java): /usr/lib/jvm/java-11-oracle/bin/java
).
Несколько исключений: у меня нет ни JAVA_HOME
, ни домашнего каталога java в моей переменной окружения PATH
.
Я также создал символическую ссылку в /opt/tomcat/latest/
для указания на нужную папку для всех файлов tomcat.
Теперь я хочу, чтобы tomcat работал как служба как пользователь «tomcat».
Вот как выглядит мой файл tomcat.service
:
[Unit]
Description=Tomcat 9 servlet container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/java-11-oracle/bin/java"
# Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Djava.awt.headless=true"
Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/tomcat.pid"
# Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
Теперь, когда я комментирую строку для переменной среды JAVA_HOME, запуск службы tomcat завершается сбоем (journalctl -xe):
Okt 27 17:43:52 my-user startup.sh[7714]: Tomcat started.
Okt 27 17:43:52 my-user shutdown.sh[7737]: PID file found but either no matching process was found or the current user does not have permission to stop the process. Stop aborted.
Okt 27 17:43:52 my-user sudo[7690]: pam_unix(sudo:session): session closed for user root
Итак, что-то работает как root, чего я не понимаю.
Но когда я комментирую эту строку, tomcat работает счастливо, но на localhost:8080
я получаю 500:
Message org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
или этот 404
Message JSP file [/index.jsp] not found
Я тоже делал sudo chown -R tomcat /opt/tomcat/latest/work/Catalina/localhost
, но это не помогло.
Любая помощь приветствуется.