簡體   English   中英

Tomcat: Can't start tomcat after installing it on Ubuntu: "Job for tomcat.service failed because the control process exited with error code."

[英]Tomcat: Can't start tomcat after installing it on Ubuntu: "Job for tomcat.service failed because the control process exited with error code."

I followed the steps https://www.digitalocean.com/community/tutorials/how-to-install-apache-tomcat-8-on-ubuntu-16-04 to install tomcat 8.5.24 on Ubuntu 16.04, till running sudo ufw allow 8080 in "Step 6: Adjust the Firewall and Test the Tomcat Server".

然后就無法啟動tomcat,

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

並且鏈接http://localhost:8080/在 firefox 和 google chrome 瀏覽器中都不起作用。

我想知道如何解決這個問題。

以下詳細信息是我遵循sudo systemctl start tomcat的上述 output 消息的內容。 似乎/opt/tomcat/bin/startup.sh成功,而/opt/tomcat/bin/shutdown.sh失敗。 非常感謝您的幫助!

$ systemctl status tomcat.service
● tomcat.service - Apache Tomcat Web Application Container
   Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
   Active: activating (auto-restart) (Result: exit-code) since Fri 2017-12-01 18:55:30 EST; 2s ago
  Process: 19490 ExecStop=/opt/tomcat/bin/shutdown.sh (code=exited, status=1/FAILURE)
  Process: 19478 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 19440 (code=exited, status=127)

Dec 01 18:55:30 ocean systemd[1]: tomcat.service: Control process exited, code=exited status=1
Dec 01 18:55:30 ocean systemd[1]: Failed to start Apache Tomcat Web Application Container.
Dec 01 18:55:30 ocean systemd[1]: tomcat.service: Unit entered failed state.
Dec 01 18:55:30 ocean systemd[1]: tomcat.service: Failed with result 'exit-code'.

$ journalctl -xe

-- Unit tomcat.service has begun starting up.
Dec 01 18:51:24 ocean startup.sh[18873]: Existing PID file found during start.
Dec 01 18:51:24 ocean startup.sh[18873]: Removing/clearing stale PID file.
Dec 01 18:51:24 ocean startup.sh[18873]: Tomcat started.
Dec 01 18:51:24 ocean shutdown.sh[18885]: PID file found but no matching process was found. Stop aborted.
Dec 01 18:51:24 ocean systemd[1]: tomcat.service: Control process exited, code=exited status=1
Dec 01 18:51:24 ocean systemd[1]: Failed to start Apache Tomcat Web Application Container.
-- Subject: Unit tomcat.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit tomcat.service has failed.
-- 
-- The result is failed.
Dec 01 18:51:24 ocean systemd[1]: tomcat.service: Unit entered failed state.
Dec 01 18:51:24 ocean systemd[1]: tomcat.service: Failed with result 'exit-code'.
Dec 01 18:51:34 ocean systemd[1]: tomcat.service: Service hold-off time over, scheduling restart.
Dec 01 18:51:34 ocean systemd[1]: Stopped Apache Tomcat Web Application Container.
-- Subject: Unit tomcat.service has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit tomcat.service has finished shutting down.
Dec 01 18:51:34 ocean systemd[1]: Starting Apache Tomcat Web Application Container...
-- Subject: Unit tomcat.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit tomcat.service has begun starting up.
Dec 01 18:51:35 ocean startup.sh[18896]: Existing PID file found during start.
Dec 01 18:51:35 ocean startup.sh[18896]: Removing/clearing stale PID file.
Dec 01 18:51:35 ocean startup.sh[18896]: Tomcat started.
Dec 01 18:51:35 ocean shutdown.sh[18908]: PID file found but no matching process was found. Stop aborted.
Dec 01 18:51:35 ocean systemd[1]: tomcat.service: Control process exited, code=exited status=1
Dec 01 18:51:35 ocean systemd[1]: Failed to start Apache Tomcat Web Application Container.
-- Subject: Unit tomcat.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit tomcat.service has failed.
-- 
-- The result is failed.
Dec 01 18:51:35 ocean systemd[1]: tomcat.service: Unit entered failed state.
Dec 01 18:51:35 ocean systemd[1]: tomcat.service: Failed with result 'exit-code'.

我的 Java 版本是

$ java --version
java 9.0.1
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)

$ javac --version
javac 9.0.1

更新:

如果我運行,而不是sudo systemctl start tomcat會給出上述錯誤

cd /opt/tomcat/bin

sudo ./catalina.sh run

http://localhost:8080/顯示正確的網頁。 那么一個不起作用而另一個起作用的原因是什么?

使用戶tomcat成為整個 tomcat 目錄的所有者:

cd /opt && sudo chown -R tomcat tomcat/

我通過從/etc/systemd/system/tomcat.service JAVA_HOME中刪除“ /jre ”解決了這個問題

找到 JAVA_Home ($env | grep JAVA_HOME)

須藤vi /etc/systemd/system/tomcat.service

Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"

您可能在 tomcat 服務中添加了以下行:-

Environment="JAVA_HOME=/usr/lib/jvm/default-java"

您必須將其替換為您正在使用的實際 Java 版本。 在終端中鍵入以下命令:-

須藤更新-java-alternatives -l

輸出

將上述命令的輸出替換為 JAVA_HOME 變量路徑,您的變量應如下所示:-

Environment="JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64"

現在重新加載守護程序並重新啟動您的服務它應該可以正常工作

須藤 systemctl 守護進程重新加載

須藤 systemctl 啟動 tomcat

檢查服務狀態

須藤 systemctl 狀態 tomcat

我在 Ubuntu 上現有的Tomcat安裝中遇到了同樣的問題:

當我嘗試通過制作現有文件的副本然后使用以下命令創建新文件來清除日志文件時,我開始遇到此問題:

sudo cp /opt/tomcat/logs/catalina.out catalina_copy.out
sudo rm -rf /opt/tomcat/logs/catalina.out
sudo touch /opt/tomcat/logs/catalina.out

當我嘗試使用sudo systemctl restart tomcat啟動tomcat時,我遇到了這個錯誤:

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

這是我修復它的方法

問題是,在我創建並復制文件后,文件的所有權從tomcat更改為root ,我通過在/opt/tomcat/logs目錄中運行以下命令來確認:

ls -lh

我所要做的就是通過運行以下命令將所有權從root更改為tomcat

sudo chown -R tomcat:tomcat catalina.out
sudo chown -R tomcat:tomcat catalina_copy.out

這次當我嘗試使用sudo systemctl restart tomcat服務器時,它運行良好。

就這樣。

我希望這有幫助

只需從 'tomcat.service' 文件中的 JAVA_HOME 中刪除 '/jre',服務就會啟動。

我今天遇到了類似的問題,唯一的區別是該服務直到昨晚都運行良好,然后突然停止了..

原因是 Java 版本已自動更新,從而更改了 java 路徑。

我所要做的就是更新 tomcat.service 文件中的新 Java 路徑,重新啟動守護程序和中提琴..!!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM