linux系統下使用service方式啟動Tomcat
阿新 • • 發佈:2019-01-25
如果需要將tomcat作為linux的後臺程式執行,需要使用commons-daemon工程的jsvc工具,tomcat的bin目錄裡已經自帶了這個工具的原始碼。
操作環境:centos 7,Tomcat7,jdk 1.7
操作步驟如下:
解壓commons-daemon-native.tar.gz
tar -zxvf commons-daemon-native.tar.gz
解壓後會生成commons-daemon-1.0.15-native-src目錄,進入unix目錄下
cd commons-daemon-1.0.15-native-src/unix
執行配置並進行編譯
注意需要預先安裝gcc,如果沒有安裝,則使用 yum install -y gcc進行安裝
./configure
make
將生成的jsvc檔案拷貝到Tomcat的bin目錄下
在/etc/init.d中建立tomcat檔案,並寫入如下指令碼內容
#!/bin/sh
# tomcat: Start/Stop/Restart tomcat
#
# chkconfig: 2345 85 15
# description: Apache tomcat7
# Small shell script to show how to start/stop Tomcat using jsvc
# If you want to have Tomcat running on port 80 please modify the server.xml
# file:
#
# <!-- Define a non-SSL HTTP/1.1 Connector on port 80 -->
# <Connector className="org.apache.catalina.connector.http.HttpConnector"
# port="80" minProcessors="5" maxProcessors="75"
# enableLookups="true" redirectPort="8443"
# acceptCount="10" debug="0" connectionTimeout="60000"/>
#
#根據實際jdk路徑進行配置
JAVA_HOME=/usr/local/bin/jdk1.7.0_75
#根據實際tomcat路徑進行配置
CATALINA_HOME=/usr/local/bin/apache-tomcat-7.0.69
CATALINA_BASE=$CATALINA_HOME
DAEMON_HOME=$CATALINA_HOME/bin
TOMCAT_USER=egov
# for multi instances adapt those lines.
#根據實際tomcat路徑進行配置,設定為tomcat路徑/temp形式
TMP_DIR=$CATALINA_HOME/temp
#根據實際tomcat路徑進行配置,設定為tomcat路徑/jsvc/run/jsvc.pid形式
PID_FILE=/home/egov/tomcat/jsvc/run/jsvc.pid
#. /etc/rc.d/init.d/functions
CATALINA_OPTS="$CATALINA_OPTS -server -Xms2048m -Xmx2048m -XX:PermSize=512m -XX:MaxNewSize=512m -XX:MaxPermSize=1024m"
CLASSPATH=\
$JAVA_HOME/lib/tools.jar:\
$CATALINA_HOME/bin/commons-daemon.jar:\
$CATALINA_HOME/bin/bootstrap.jar:\
$CATALINA_HOME/bin/tomcat-juli.jar
case "$1" in
start)
#
# Start Tomcat
#
$DAEMON_HOME/jsvc \
-user $TOMCAT_USER \
-home $JAVA_HOME \
-Dcatalina.home=$CATALINA_HOME \
-Dcatalina.base=$CATALINA_BASE \
-Dfile.encoding=utf-8 \
-Djava.io.tmpdir=$TMP_DIR \
-wait 10 \
-pidfile $PID_FILE \
-outfile $CATALINA_HOME/logs/catalina.out \
-errfile '&1' \
$CATALINA_OPTS \
-cp $CLASSPATH \
org.apache.catalina.startup.Bootstrap
#
# To get a verbose JVM
#-verbose \
# To get a debug of jsvc.
#-debug \
exit $?
;;
stop)
#
# Stop Tomcat
#
$DAEMON_HOME/jsvc \
-stop \
-pidfile $PID_FILE \
org.apache.catalina.startup.Bootstrap
(ps -e | awk '{ if($4== "jsvc") printf "%s ",$1}' | xargs kill -9)2>/dev/null
exit $?
;;
restart)
#
# Restart Tomcat
#
$0 stop
$0 start
;;
status)
#
# Restart Tomcat
#
ps ax --width=1000 | grep "[o]rg.apache.catalina.startup.Bootstrap" | awk '{printf $1 " "}' | wc | awk '{print $2}' > /tmp/tomcat_process_count.txt
read line < /tmp/tomcat_process_count.txt
if [ $line -gt 0 ]; then
echo -n "tomcat7 ( pid "
ps ax --width=1000 | grep "[o]rg.apache.catalina.startup.Bootstrap" | awk '{printf $1 " "}'
echo ") is running "
else
echo "tomcat7 is stopped"
fi
;;
*)
echo "Usage tomcat7 start/stop/restart/status"
exit 1;;
esac
根據實際情況修改JAVA_HOME,CATALINA_HOME以及TOMCAT_USER的值
修改tomcat檔案的屬性
chmod 755 tomcat
新增系統服務
chkconfig --add tomcat
檢視是否新增tomcat系統服務
chkconfig --list
啟動tomcat服務
service tomcat start
檢視是否啟動成功
service tomcat status
關閉tomcat服務
service tomcat stop