[JAVA] Eine Geschichte, der ich mit der automatischen Starteinstellung von Tomcat 8 unter CentOS 8 zweimal verfallen war

Überblick

Ich habe das Problem einmal gelöst, bin aber in einer anderen Umgebung erneut auf dasselbe Problem gestoßen und habe keine Aufzeichnungen geführt. Daher habe ich 2 Stunden lang gekämpft und mir notiert, den dritten Fehler in Zukunft nicht zu wiederholen.

Umgebung

Wenn es nicht funktioniert

Wenn ich /etc/systemd/system/tomcat.service wie im Beispiel unter (https://weblabo.oscasierra.net/installing-tomcat8-centos7-1/) erstelle, funktioniert es nicht.

File Edit Options Buffers Tools Help
[Unit]
Description=Apache Tomcat 8
After=network.target

[Service]
User=tomcat
Group=tomcat
Type=oneshot
PIDFile=/usr/java/tomcat8/temp/tomcat.pid
RemainAfterExit=yes

ExecStart=/usr/java/tomcat8/bin/startup.sh
ExecStop=/usr/java/tomcat8/bin/shutdown.sh
ExecReStart=/usr/java/tomcat8/bin/shutdown.sh;/usr/java/tomcat8/bin/startup.sh

[Install]
WantedBy=multi-user.target

Fehler, wenn es nicht funktioniert

Übrigens, wenn Sie /usr/java/tomcat8/bin/startup.sh manuell ausführen, funktioniert es einwandfrei.

[root@localhost ~]# 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.

11. August 23:47:39 localhost.localdomain systemd[1]: Starting Apache Tomcat 8...
-- Subject: Unit tomcat.service has begun start-up
-- Defined-By: systemd
-- Support: https://access.redhat.com/support
--
-- Unit tomcat.service has begun starting up.
11. August 23:47:39 localhost.localdomain systemd[2079]: tomcat.service: Failed to execute command: Permission denied
11. August 23:47:39 localhost.localdomain systemd[2079]: tomcat.service: Failed at step EXEC spawning /usr/java/tomcat8/bin/startup.sh: Permission denied
-- Subject: Process /usr/java/tomcat8/bin/startup.sh could not be executed
-- Defined-By: systemd
-- Support: https://access.redhat.com/support
--
-- The process /usr/java/tomcat8/bin/startup.sh could not be executed and failed.
--
-- The error number returned by this process is 13.
11. August 23:47:39 localhost.localdomain systemd[1]: tomcat.service: Main process exited, code=exited, status=203/EXEC
11. August 23:47:39 localhost.localdomain systemd[1]: tomcat.service: Failed with result 'exit-code'.
11. August 23:47:39 localhost.localdomain systemd[1]: Failed to start Apache Tomcat 8.
-- Subject: Unit tomcat.service has failed
-- Defined-By: systemd
-- Support: https://access.redhat.com/support
--
-- Unit tomcat.service has failed.
--
-- The result is failed.

Ob es funktioniert

Sie können auf https://stackoverflow.com/questions/53994521/tomcat-8-on-centos-7-does-not-start-as-service-but-it-starts-manually verweisen.

Die Einstellung, die endlich funktioniert hat. Ist das Arbeitsverzeichnis, wie in der obigen URL erwähnt, doch verdächtig?

/etc/systemd/system/tomcat.service


[Unit]
Description=Apache Tomcat 8
After=network.target

[Service]
Type=forking
WorkingDirectory=/usr/java/tomcat8/bin

ExecStart=/bin/bash /usr/java/tomcat8/bin/catalina.sh start
ExecStop=/bin/bash /usr/java/tomcat8/bin/catalina.sh stop

User=tomcat
Group=tomcat

[Install]
WantedBy=multi-user.target

Recommended Posts

Eine Geschichte, der ich mit der automatischen Starteinstellung von Tomcat 8 unter CentOS 8 zweimal verfallen war
Ich war süchtig nach Laradock + VSCode + xdebug
Die Geschichte, nach der ich beim Einrichten von STS süchtig war
Beachten Sie, dass ich von den Einstellungen des Android-Projekts von IntelliJ IDEA abhängig war
Eine Geschichte, nach der ich süchtig war, als ich einen Schlüssel bekam, der automatisch auf MyBatis ausprobiert wurde
Ich war süchtig nach der API-Version min23 von registerTorchCallback
Eine Geschichte, die mich während des Komponententests von der impliziten Typkonvertierung von ActiveRecord abhängig machte
Ein Memo, das nüchtern von der Anfrage nach mehrteiligen / Formulardaten abhängig war
Eine Geschichte, der ich beim Testen der API mit MockMVC verfallen war
[Circle CI] Ich war süchtig nach dem automatischen Test von Circle CI (Rails + MySQL) [Memo]
Die Geschichte, ein Projekt zu bauen, das Maven mit Ant gebaut hat
Eine Geschichte, die ich mit der Stream-API von Java8 einem Prozess schreiben wollte, der einer while-Anweisung entspricht
Ich war süchtig nach der Aufzeichnung des zugehörigen Modells
Beachten Sie, dass ich süchtig nach Stapelverarbeitung mit Spring Boot war
Eine Geschichte über die Schwierigkeiten beim Versuch, PHP 7.4 auf CentOS 8 von GCE zu erstellen
Ich war süchtig danach, default_url_options mit der Einführung von Rails zu setzen
Ich war süchtig danach, die Update-Anweisung in MyBatis zu wiederholen
Eine Geschichte, die von String () von Interface abhängig ist und von JdkDynamicAopProxy vertreten wird
Was ich mit der Redmine REST API süchtig gemacht habe
[Circle CI] Eine Geschichte, der ich bei Start Building verfallen war
Eine Geschichte, die ich mit Java nur schwer herausfordern konnte
Die Geschichte von Collectors.groupingBy, die ich für die Nachwelt behalten möchte
Eine Geschichte über die Verbindung zu einem CentOS 8-Server mit einem alten Ansible
Ein Hinweis, als ich süchtig danach war, Ubuntu auf WSL1 in WSL2 zu konvertieren
Über die Sache, dass ich süchtig danach war, wie man Hashmap benutzt
Eine Geschichte, die mit der Einführung von Web Apple Pay zu kämpfen hatte
Technische Ursachen und Gegenmaßnahmen für Punkte, denen ich mit der Android-App und Kotlin verfallen war (2. Verarbeitung im Zusammenhang mit der Kamerafunktion von Android *)
Ich war süchtig nach der Rollmethode
Ich war süchtig nach dem Spring-Batch-Test
Die Geschichte eines Game Launcher mit automatischer Ladefunktion [Java]
Ich war süchtig nach einem einfachen Test von Jedis (Java-> Redis-Bibliothek)
Probleme, denen ich beim Erstellen der Digdag-Umgebung mit Docker verfallen war
Aufgenommen, weil ich süchtig nach der Standardeingabe der Scannerklasse war
Ich war süchtig nach Unit-Tests mit dem Pufferoperator in RxJava
Ich war süchtig nach RXTX mit Sierra
Eine Geschichte, die süchtig nach EntityNotFoundException von getOne of JpaRepository ist
Ich war süchtig danach, onActivityResult () mit DialogFragment zu machen
Ich war ein wenig süchtig nach dem S3-Prüfsummenvergleich, machen Sie sich also eine Notiz.
SpringSecurity Ich war süchtig danach, mich mit einem Hash-Passwort anzumelden (gelöst)
Eine Geschichte, die mir sehr gut gefallen hat, als ich mit Ruby Triple DES gemacht habe
So erstellen Sie einen Jenkins-Server mit einem Docker-Container unter CentOS 7 von VirtualBox und greifen von einem lokalen PC auf den Jenkins-Server zu
Ich möchte, dass Sie die Geschichte erzählen, dass der Fehler behoben wurde, als Sie das Ladegerät in die Ecke Ihres Kopfes gestochen haben
Eine Geschichte, dass eine Person, die ein solides iOS gemacht hat, möglicherweise von der Implementierung von Listener abhängig ist, wenn sie zu Android wechselt
Wovon ich süchtig war, als ich eine Spring Boot-Anwendung mit VS Code entwickelte
Die CSV-Datei, die ich herunterladen konnte, wurde plötzlich auf der Seite angezeigt.
[Spring Boot] Die Geschichte, dass die Bean der Klasse mit der Annotation ConfigurationProperties nicht gefunden wurde
Der Teil, dem ich in "Einführung in Ajax in Java-Webanwendungen" von NetBeans verfallen war
Ich war süchtig nach NoSuchMethodError in Cloud-Endpunkten
Die Geschichte, einen Reverse-Proxy mit ProxyServlet zu erstellen
Süchtig nach dem Webpacker, der standardmäßig mit Rails 6 geliefert wird
Kintone-Klon? Ich war ziemlich süchtig danach, die OSS WebDB-Erweiterung mit Lightsail + Docker zu starten. Notieren Sie sich dies.
Die Geschichte, wie ein Docker-Container mit GitHub-Aktionen in die GitHub-Paketregistrierung und den Docker-Hub verschoben wird
Ein problematischer Hinweis beim Versuch, nginx mit Remote-Containern von vscode zu verwenden