web-dev-qa-db-ja.com

Tomcat 8サービスファイルの権限が機能しない

私はubuntu 16.04にTomcat 8をインストールしようとしています。これは私がフォローしているガイドです:

https://www.digitalocean.com/community/tutorials/how-to-install-Apache-Tomcat-8-on-ubuntu-16-04

基本的な考え方は、Tomcatを実行する権限が制限された「Tomcat」という名前の追加ユーザーを作成することです。最後のコマンドを実行してサービスとして開始しようとすると(rootとして試行):

Sudo systemctl start Tomcat

次のエラーが発生します。

制御プロセスがエラーコードで終了したため、Tomcat.serviceのジョブが失敗しました。詳細については、「systemctl status Tomcat.service」および「journalctl -xe」を参照してください。

Systemctlステータスの確認:

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) 
Process: 14 ExecStart=/opt/Tomcat/bin/startup.sh (code=exited, status=203/EXEC)

systemd[1]: Starting Apache Tomcat Web Application Container...
systemd[1]: Tomcat.service: Control process exited, code=exited status=203
systemd[1]: Failed to start Apache Tomcat Web Application Container.
systemd[1]: Tomcat.service: Unit entered failed state.
systemd[1]: Tomcat.service: Failed with result 'exit-code'.

これはTomcat.serviceファイルです:

# /etc/systemd/system/Tomcat.service

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

Environment=Java_HOME=/usr/lib/jvm/Java-1.8.0-openjdk-AMD64
Environment=CATALINA_PID=/opt/Tomcat/temp/Tomcat.pid
Environment=CATALINA_HOME=/opt/Tomcat
Environment=CATALINA_BASE=/opt/Tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='Java_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'

ExecStart=/opt/Tomcat/bin/startup.sh
ExecStop=/opt/Tomcat/bin/shutdown.sh

User=Tomcat
Group=Tomcat
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

/ Tomcat/binフォルダーへのアクセス権は次のとおりです。

-rwxr-x--- 1 root root   1902 Jul  6 08:44 shutdown.sh
-rwxr-x--- 1 root root   1904 Jul  6 08:44 startup.sh
... 

他のユーザーが同じ問題を報告しており、「Tomcat」ユーザーに「Tomcat」フォルダー全体の所有権を与えることをお勧めします。しかし、それは記事の精神(セキュリティを向上させるためにアクセスを制限する)と矛盾するようです。

パーミッションに関するこの記事の意味が欠けているかどうかわかりません。

ありがとう

6
user3203425

これまでに行ったことをすべて削除するだけです。次に:

Sudo apt-get install Tomcat8
Sudo service Tomcat8 start
3
Lisandro

同じ問題がありました。私の場合、私はJava 11.を使用しています。問題は、この新しいJavaバージョンのJREフォルダが含まれていないことです。/jreをJava_HOMEのパスとそれは動作するはずです。

また、このチュートリアルのすべての手順を実行したので、他に大きな問題を起こすことなくTomcatを実行できました。

実行する必要があります

cd /opt/Tomcat/bin && Sudo chmod +x catalina.sh

Tomcatは、startup.shからcatalina.shを起動する必要があります

0
cdarwin

記事に従って、あなたと同じエラーが発生しました。

後:

chgrp -R Tomcat bin chmod g+rwx bin chmod g+r bin/*

それは私のために働いた。

/ opt/Tomcat内のすべてのファイル/フォルダーを変更する必要はありません(起動、シャットダウン、およびこれら2つによって呼び出されるもののみです。そのため、binフォルダー全体を使用しました)。

ところで、apt-get install Tomcat8機能するTomcat8サーバーを取得するには:)(これにより、IDが1000未満のTomcat8ユーザー/グループが作成されます)。

0
Zina

Centos 7.4では、すべてのパスを試しましたが、解決策が見つかりません。やっと直接Tomcatを起動しました。

chmod +x /opt/Tomcat/bin/*.sh
ln -s /opt/Tomcat/bin/startup.sh /usr/bin/tomcatstart
ln -s /opt/Tomcat/bin/shutdown.sh /usr/bin/tomcatshutdown
tomcatstart

これらの実行可能ファイルを/ usr/binにリンクすると、どこからでも起動できます。コード「tomcatstart」を/ etc/environmentに配置すると、Tomcatが起動時に起動します。私の現在の環境ファイルは:

export Java_HOME=/opt/jdk1.8.0_144
export JRE_HOME=/opt/jdk1.8.0_144/jre
export PATH=$PATH:/opt/jdk1.8.0_144/bin:/opt/jdk1.8.0_144/jre/bin
tomcatstart
0
kodmanyagha