[JAVA] Une histoire à laquelle j'étais accro à deux reprises avec le paramètre de démarrage automatique de Tomcat 8 sur CentOS 8

Aperçu

J'ai résolu le problème une fois, mais j'ai rencontré à nouveau le même problème dans un autre environnement et je n'ai pas gardé de trace, j'ai donc lutté pendant 2 heures et pris note de ne pas répéter la troisième erreur à l'avenir.

environnement

Si ça ne marche pas

Si je crée /etc/systemd/system/tomcat.service comme dans l'exemple sur (https://weblabo.oscasierra.net/installing-tomcat8-centos7-1/), cela ne fonctionne pas.

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

Erreur si cela ne fonctionne pas

Au fait, si vous exécutez manuellement /usr/java/tomcat8/bin/startup.sh, cela fonctionne correctement.

[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 août 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 août 23:47:39 localhost.localdomain systemd[2079]: tomcat.service: Failed to execute command: Permission denied
11 août 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 août 23:47:39 localhost.localdomain systemd[1]: tomcat.service: Main process exited, code=exited, status=203/EXEC
11 août 23:47:39 localhost.localdomain systemd[1]: tomcat.service: Failed with result 'exit-code'.
11 août 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.

Si ça marche

Vous pouvez vous référer à https://stackoverflow.com/questions/53994521/tomcat-8-on-centos-7-does-not-start-as-service-but-it-starts-manually.

Le cadre qui a finalement fonctionné. Comme mentionné dans l'URL ci-dessus, le répertoire de travail est-il suspect après tout?

/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

Une histoire à laquelle j'étais accro à deux reprises avec le paramètre de démarrage automatique de Tomcat 8 sur CentOS 8
J'étais accro au réglage de laradock + VSCode + xdebug
L'histoire à laquelle j'étais accro lors de la création de STS
Notez que j'étais accro aux paramètres du projet Android d'IntelliJ IDEA
Une histoire à laquelle j'étais accro lors de l'obtention d'une clé qui a été automatiquement essayée sur MyBatis
J'étais accro au paramètre API version min23 de registerTorchCallback
Une histoire dans laquelle j'étais accro à la conversion de type implicite d'ActiveRecord lors du test unitaire
Un mémo sobrement accro à la demande de multipart / form-data
Une histoire à laquelle j'étais accro lors du test de l'API à l'aide de MockMVC
[Circle CI] J'étais accro au test automatique de Circle CI (rails + mysql) [Memo]
L'histoire de rendre possible la construction d'un projet qui a été construit par Maven avec Ant
Je voulais écrire un processus équivalent à une instruction while avec l'API Java 8 Stream
J'étais accro au record du modèle associé
Notez que j'étais accro au traitement par lots avec Spring Boot
Une histoire sur le fait d'avoir du mal à construire PHP 7.4 sur CentOS 8 de GCE
J'étais accro à la configuration de default_url_options avec l'introduction de la conception de Rails
J'étais accro à la mise à jour de la déclaration dans MyBatis
Une histoire à laquelle j'étais accro avec toString () d'Interface qui était proxy avec JdkDynamicAopProxy
Ce à quoi j'étais accro avec l'API REST Redmine
[Circle CI] Une histoire à laquelle j'étais accro chez Start Building
Une histoire que j'ai eu du mal à défier le pro de la concurrence avec Java
L'histoire de Collectors.groupingBy que je veux garder pour la postérité
Une histoire sur la connexion à un serveur CentOS 8 avec un ancien Ansible
Une note quand j'étais accro à la conversion d'Ubuntu sur WSL1 en WSL2
À propos de la question pour laquelle j'étais accro à l'utilisation de hashmap
Une histoire qui a eu du mal avec l'introduction de Web Apple Pay
Causes techniques et contre-mesures pour les points auxquels j'étais accro avec l'application Android et Kotlin (2. Traitement lié à la fonction caméra d'Android *)
J'étais accro à la méthode du rouleau
J'étais accro au test Spring-Batch
L'histoire de la création d'un lanceur de jeu avec une fonction de chargement automatique [Java]
J'étais accro à un simple test de Jedis (bibliothèque Java-> Redis)
Problèmes auxquels j'étais accro lors de la création de l'environnement digdag avec docker
Enregistré parce que j'étais accro à l'entrée standard de la classe Scanner
J'étais accro aux tests unitaires avec l'opérateur de tampon dans RxJava
J'étais accro à l'utilisation de RXTX avec Sierra
Une histoire accro à EntityNotFoundException de getOne de JpaRepository
J'étais accro à faire onActivityResult () avec DialogFragment
J'étais un peu accro à la comparaison S3 Checksum, alors prenez note.
SpringSecurity J'étais accro à essayer de me connecter avec un mot de passe haché (résolu)
Une histoire dans laquelle j'étais vraiment quand j'ai fait triple DES avec ruby
Comment créer un serveur Jenkins avec un conteneur Docker sur CentOS 7 de VirtualBox et accéder au serveur Jenkins à partir d'un PC local
Je veux que vous racontiez que l'erreur a été résolue lorsque vous avez poignardé le chargeur dans le coin de la tête
Une histoire que les personnes qui ont fait iOS solidement peuvent être accro à la mise en œuvre de Listener lors du passage à Android
Ce à quoi j'étais accro lors du développement d'une application Spring Boot avec VS Code
Le fichier CSV que j'ai pu télécharger a soudainement commencé à apparaître sur la page.
[Spring Boot] L'histoire selon laquelle le bean de la classe avec l'annotation ConfigurationProperties n'a pas été trouvé
La partie à laquelle j'étais accro dans "Introduction à Ajax dans les applications Web Java" de NetBeans
J'étais accro à NoSuchMethodError dans Cloud Endpoints
L'histoire de la création d'un proxy inverse avec ProxyServlet
Accro au Webpacker fourni en standard avec Rails 6
clone de kintone? J'étais assez accro au lancement de l'extension OSS WebDB avec Lightsail + Docker, alors prenez-en note.
L'histoire du transfert d'un conteneur Docker vers le registre de packages GitHub et Docker Hub avec des actions GitHub
Une note gênante lorsque vous essayez d'utiliser nginx avec des conteneurs distants de vscode