tomcat7 linux service

1. 创建tomcat用户

useradd -r -m -d /usr/local/tomcat7 -s /sbin/nologin tomcat

 

2. 将下面脚本命名为tomcat7 放入/etc/init.d/文件夹下即可

#!/bin/bash
#
# tomcat7     This shell script takes care of starting and stopping Tomcat
#
# chkconfig: - 80 20
#
### BEGIN INIT INFO
# Provides: tomcat7
# Required-Start: $network $syslog
# Required-Stop: $network $syslog
# Default-Start:
# Default-Stop:
# Description: Release implementation for Servlet 2.5 and JSP 2.1
# Short-Description: start and stop tomcat
### END INIT INFO
 
#useradd -r -m -d ${TOMCAT_HOME} -s /sbin/nologin tomcat
#useradd -r -m -d /usr/local/tomcat7 -s /sbin/nologin tomcat

## Source function library.
#. /etc/rc.d/init.d/functions
export JAVA_OPTS="-Dfile.encoding=UTF-8 \
  -Dcatalina.logbase=/var/log/tomcat7   -Dnet.sf.ehcache.skipUpdateCheck=true   -Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.EPollSelectorProvider   -XX:+DoEscapeAnalysis   -XX:+UseConcMarkSweepGC   -XX:+CMSClassUnloadingEnabled   -XX:+UseParNewGC   -XX:MaxPermSize=256m   -XX:PermSize=256m   -XX:MaxNewSize=512m   -Xms4096m -Xmx4096m"
TOMCAT_HOME=/usr/local/tomcat7
SHUTDOWN_WAIT=5
export JAVA_HOME=/usr/java/jdk1.7.0_67
export PATH=$JAVA_HOME/bin:$PATH
 
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 $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 $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
}

log(){
     /bin/su -p -s /bin/sh tomcat -c "/usr/bin/tail -f $TOMCAT_HOME/logs/catalina.out"
}
 
case $1 in
log)
  log
;;
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

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。