質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

受付中

tomcatをserviceに登録して起動しようとするとlogに対してpermissionエラーが発生する。

leo_xxx
leo_xxx

総合スコア13

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

2回答

0評価

0クリップ

19709閲覧

投稿2016/07/27 00:31

・環境
OS CentOS release 6.7 (Final)
tomcat 7.0.55

tomcatをserviceに登録してserviceから実行しようとするとpermissionエラーが発生します。
serviceを実行するユーザはrootではなく通常のユーザです。
原因として何が考えられるでしょうか?

serviceからではなく通常の起動方法

sudo -u tomcat /opt/apache-tomcat/apache-tomcat-7.0.55/bin/startup.sh

の実行では、特に問題なく動作します。

serviceから実行したときのエラーは以下のとおりです。

Starting tomcat
Using CATALINA_BASE: /opt/apache-tomcat/apache-tomcat-7.0.55
Using CATALINA_HOME: /opt/apache-tomcat/apache-tomcat-7.0.55
Using CATALINA_TMPDIR: /opt/apache-tomcat/apache-tomcat-7.0.55/temp
Using JRE_HOME: /usr
Using CLASSPATH: /opt/apache-tomcat/apache-tomcat-7.0.55/bin/bootstrap.jar:/opt/apache-tomcat/apache-tomcat-7.0.55/bin/tomcat-juli.jar
touch: cannot touch `/opt/apache-tomcat/apache-tomcat-7.0.55/logs/catalina.out': Permission denied
/opt/apache-tomcat/apache-tomcat-7.0.55/bin/catalina.sh: line 385: /opt/apache-tomcat/apache-tomcat-7.0.55/logs/catalina.out: Permission denied


/opt/apache-tomcat/apache-tomcat-7.0.55/配下のフォルダのmodeは以下のとおり

drwxr-xr-x. 2 tomcat tomcat 4096 May 30 11:08 bin

drwxr-xr-x. 3 tomcat tomcat 4096 Jul 25 06:57 conf

drwxr-xr-x. 2 tomcat tomcat 4096 May 30 11:08 lib

-rw-r--r--. 1 tomcat tomcat 56812 Jul 18 2014 LICENSE

drwxr-xr-x. 2 tomcat tomcat 12288 Jul 27 00:04 logs
-rw-r--r--. 1 tomcat tomcat 1192 Jul 18 2014 NOTICE

-rw-r--r--. 1 tomcat tomcat 8963 Jul 18 2014 RELEASE-NOTES

-rw-r--r--. 1 tomcat tomcat 16204 Jul 18 2014 RUNNING.txt

drwxr-xr-x. 3 tomcat tomcat 4096 Jul 27 00:19 temp

drwxr-xr-x. 11 tomcat tomcat 4096 Jun 23 23:54 webapps

drwxr-xr-x. 3 tomcat tomcat 4096 May 30 11:19 work

touchできないと言われるcatalina.outのmodeは以下のとおり

rw-r--r--. 1 tomcat tomcat 42084568 Jul 27 00:21 catalina.out


tomcatをサービスに登録した方法は以下のとおり

/etc/init.d/tomcat
chmod +x tomcat
chkconfig --add tomcat

登録できたことを確認
chkconfig --list tomcat
tomcat 0:off 1:off 2:on 3:on 4:on 5:on 6:off


/etc/init.d/tomcatの中身

#!/bin/bash # Startup script for the Tomcat Servlet Container # # chkconfig: 2345 35 65 export LANG=ja_JP.UTF-8 TOMCAT_HOME=/opt/apache-tomcat/apache-tomcat-7.0.55 LOCKFILE=/var/lock/subsys/tomcat # source function library . /etc/rc.d/init.d/functions start(){ if [ ! -f ${LOCKFILE} ]; then echo ""Starting tomcat"" #sudo -u tomcat ${TOMCAT_HOME}/bin/startup.sh ${TOMCAT_HOME}/bin/startup.sh sleep 1 PID=`ps -ef | grep catalina.home=${TOMCAT_HOME} | grep -v grep | awk '{print $2}'` echo ${PID} > ${LOCKFILE} tail -f ${TOMCAT_HOME}/logs/catalina.out | while read LINE do PID=`ps -ef | grep -v grep | egrep -e '.*tail.*catalina.out$' | awk '{print $2}'` if [ 1 -ne `echo $LINE | egrep -e '^.*: Server startup in [0-9]* ms$' | wc -l` ]; then echo -n ""."" else echo echo $LINE kill ${PID} fi done else echo ""tomcat is already running"" fi } stop(){ if [ -f ${LOCKFILE} ]; then echo ""Shutting down tomcat"" #sudo -u tomcat ${TOMCAT_HOME}/bin/shutdown.sh ${TOMCAT_HOME}/bin/shutdown.sh while [ 1 -eq `ps -ef | grep ${TOMCAT_HOME} | grep -v grep | wc -l` ] do echo -n ""."" sleep 1 done echo echo ""Shutted down tomcat"" rm -f ${LOCKFILE} else echo ""tomcat is not running"" fi } case ""$1"" in start) start ;; stop) stop ;; restart) stop start ;; status) #${TOMCAT_HOME}/bin/catalina.sh version if [ -f ${LOCKFILE} ] then echo ""tomcat(pid:""`cat ${LOCKFILE}`"") is running."" else echo ""tomcat is not running."" fi ;; *) echo ""Usage: $0 {start|stop|restart|status}"" esac exit 0

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

moonphase

2016/07/27 00:34

サービスをどのユーザーからどのように起動しようとしてますか?
leo_xxx

2016/07/27 02:01

起動 service tomcat start 停止 service tomcat stop 再起動 service tomcat restart ステータス service tomcat status という感じでserviceコマンド自体を実行するユーザはrootでもtomcatでもないユーザです。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。