Tomcat 8をインストールして起動時に実行したいです。
私は次のチュートリアルに従っています:
私が作ったスコ羊ユーザー:
# useradd -U -r -M -d /usr/local/ServerWeb/tomcat -s /sbin/nologin tomcat
ファイルは次の場所にあります。/etc/init.d/tomcat
オプション1から:
#!/bin/bash
# description: Tomcat Start Stop Restart
# processname: tomcat
# chkconfig: 234 20 80
JAVA_HOME=/opt/jdk
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
TOMCAT_HOME=/usr/local/tomcat
TOMCAT_USER=tomcat
case $1 in
start)
/bin/su $TOMCAT_USER $TOMCAT_HOME/bin/startup.sh
;;
stop)
/bin/su $TOMCAT_USER $TOMCAT_HOME/bin/shutdown.sh
;;
restart)
/bin/su $TOMCAT_USER $TOMCAT_HOME/bin/shutdown.sh
/bin/su $TOMCAT_USER $TOMCAT_HOME/bin/startup.sh
;;
esac
exit 0
オプション2では:
#!/bin/bash
#
# tomcat
#
# chkconfig: - 80 20
#
### BEGIN INIT INFO
# Provides: tomcat
# Required-Start: $network $syslog
# Required-Stop: $network $syslog
# Default-Start:
# Default-Stop:
# Description: Tomcat
# Short-Description: start and stop tomcat
### END INIT INFO
## Source function library.
#. /etc/rc.d/init.d/functions
export JAVA_HOME=/opt/jdk
export JAVA_OPTS="-Dfile.encoding=UTF-8 \
-Dnet.sf.ehcache.skipUpdateCheck=true \
-XX:+UseConcMarkSweepGC \
-XX:+CMSClassUnloadingEnabled \
-XX:+UseParNewGC \
-XX:MaxPermSize=128m \
-Xms512m -Xmx512m"
export PATH=$JAVA_HOME/bin:$PATH
TOMCAT_HOME=/usr/local/tomcat
TOMCAT_USER=tomcat
SHUTDOWN_WAIT=20
tomcat_pid() {
echo `ps aux | grep org.apache.catalina.startup.Bootstrap | grep -v grep | awk '{ print $2 }'`
}
start() {
pid=$(tomcat_pid)
if [ -n "$pid" ]
then
echo "Tomcat is already running (pid: $pid)"
else
# Start tomcat
echo "Starting tomcat"
ulimit -n 100000
umask 007
/bin/su -p -s /bin/sh $TOMCAT_USER $TOMCAT_HOME/bin/startup.sh
fi
return 0
}
stop() {
pid=$(tomcat_pid)
if [ -n "$pid" ]
then
echo "Stoping Tomcat"
/bin/su -p -s /bin/sh $TOMCAT_USER $TOMCAT_HOME/bin/shutdown.sh
let kwait=$SHUTDOWN_WAIT
count=0;
until [ `ps -p $pid | grep -c $pid` = '0' ] || [ $count -gt $kwait ]
do
echo -n -e "\nwaiting for processes to exit";
sleep 1
let count=$count+1;
done
if [ $count -gt $kwait ]; then
echo -n -e "\nkilling processes which didn't stop after $SHUTDOWN_WAIT seconds"
kill -9 $pid
fi
else
echo "Tomcat is not running"
fi
return 0
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
pid=$(tomcat_pid)
if [ -n "$pid" ]
then
echo "Tomcat is running with pid: $pid"
else
echo "Tomcat is not running"
fi
;;
esac
exit 0
これがなぜ必要なのかわかりません。スタートオプション2:
ulimit -n 100000
umask 007
所有権を変更しました。chown -Rvh tomcat: /usr/local/tomcat/
〜の後
# chmod +x /etc/init.d/tomcat
# chkconfig --add tomcat`
しかし、再起動後セントOS 6.6、サービスが実行されていません。
テスト:
$ echo $JAVA_HOME
$
$ echo $PATH
/usr/lib/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/IntUser/bin
$
つまり、 $JAVA_HOME と $PATH未割り当て! ! !
手動で始めてみてください(Tomcatユーザーにパスワードを割り当てていません。どのパスワードを使用する必要がありますか?)。
$ service tomcat start
Password:
/bin/su: incorrect password
$
次に実行root
、調べています:
# service tomcat start
This account is currently not available.
#
口座確認:
# finger tomcat
Login: tomcat Name: Tomcat User
Directory: /usr/local/tomcat Shell: /sbin/nologin
Never logged in.
No mail.
No Plan.
#
# more /etc/passwd | grep tomcat
tomcat:x:493:490:Tomcat User:/usr/local/tomcat:/sbin/nologin
#
所有権を確認する:
# ls -al /usr/local/tomcat/
total 120
drwxr-xr-x. 9 tomcat tomcat 4096 Jun 27 09:29 .
drwxr-xr-x. 20 root root 4096 Jun 27 09:29 ..
drwxr-xr-x. 2 tomcat tomcat 4096 Jun 27 09:29 bin
drwxr-xr-x. 3 tomcat tomcat 4096 Jun 27 11:04 conf
drwxr-xr-x. 2 tomcat tomcat 4096 Jun 27 09:29 lib
-rw-r--r--. 1 tomcat tomcat 56977 May 19 15:03 LICENSE
drwxr-xr-x. 2 tomcat tomcat 4096 Jun 27 11:04 logs
-rw-r--r--. 1 tomcat tomcat 1397 May 19 15:03 NOTICE
-rw-r--r--. 1 tomcat tomcat 6741 May 19 15:03 RELEASE-NOTES
-rw-r--r--. 1 tomcat tomcat 16204 May 19 15:03 RUNNING.txt
drwxr-xr-x. 2 tomcat tomcat 4096 Jun 27 09:29 temp
drwxr-xr-x. 7 tomcat tomcat 4096 May 19 15:00 webapps
drwxr-xr-x. 3 tomcat tomcat 4096 Jun 27 11:04 work
#
助けてください。
質問1:
このスクリプトは次の場所に作成されました/etc/init.d/tomcat
。なぜ割り当て$JAVA_HOME
が$PATH
割り当てないのですか?
質問2 root権限なしでサービスをインストールする方法はありますか?起動時介入は必要ありません(例:sudo、suなど)?
答え1
上記のチュートリアルのいずれも、useradd
これらのオプションのすべてを使用することをお勧めしません。設定により、次の内容に触れlogin shell
ます/sbin/nologin
。
incorrect password
そして
This account is currently not available
次のコマンドを実行すると、tomcat
ディレクトリなしでシステムアカウントになります/home/tomcat
。
useradd -r tomcat --shell /bin/false
このコマンドは、次のディレクトリを使用して非システムtomcat
アカウントを作成します/home/tomcat
。
useradd tomcat --shell /bin/false
編集する:
/sbin/nologin
との類似点についてはあなたが正しいです/bin/false
。 OPのインストール手順がOption #2
少し不完全なようです。tomcat
機能するまで、1セットの指示のみを使用することをお勧めします。
これあなたが提供したTomcat 8バージョンですOption #1
。インストールが正しく機能するようにするためにのみ、このガイドラインを使用することをお勧めします。 (混合とマッチングによって若干の問題が発生する可能性があります。)これにより、合計がエクスポートされないなど$JAVA_HOME
の他の問題を回避できます$PATH
(質問1)、質問2にも回答が提供されます。
スクリプトにはOption #1
次の行があります。
/bin/su $TOMCAT_USER $TOMCAT_HOME/bin/startup.sh
/bin/su $TOMCAT_USER $TOMCAT_HOME/bin/shutdown.sh
/bin/su $TOMCAT_USER $TOMCAT_HOME/bin/shutdown.sh
/bin/su $TOMCAT_USER $TOMCAT_HOME/bin/startup.sh
ただし、Option #1
提供したリンクには次の行があります。
sh $CATALINA_HOME/bin/startup.sh
sh $CATALINA_HOME/bin/shutdown.sh
sh $CATALINA_HOME/bin/shutdown.sh
sh $CATALINA_HOME/bin/startup.sh