Tomcat启动脚本

自制Tomcat 启动脚本

如果是通过直接下载的tomcat tar 包,是不可以通过service tomcat stop|start|restart 等命令关闭、启动、重启tomcat的,但是我们可以使用简单的shell脚本完成这项工作,并将其放置在/etc/init.d中,然后就可以像使用其他服务一样使用tomcat了。
脚本内容 如下:

[root@server01 tomcatservice]# cat tomcat8080 
#!/bin/sh  

RETVAL=0  
export CATALINA_HOME=/usr/local/apache-tomcat-8.0.24-8080/
start()  
{  
        if [ -f $CATALINA_HOME/bin/startup.sh ];  
          then  
            echo $"Starting Tomcat"  
                su - tomcat -c "$CATALINA_HOME/bin/startup.sh"
            RETVAL=$?  
            echo " OK"  
            return $RETVAL  
        fi  
}  
stop()  
{  
        if [ -f $CATALINA_HOME/bin/shutdown.sh ];  
          then  
            echo $"Stopping Tomcat"  
                su - tomcat -c "$CATALINA_HOME/bin/shutdown.sh"  
            RETVAL=$?  
            sleep 1  
            ps -fu tomcat | grep apache-tomcat-8.0.24-8080|grep -v grep | grep -v PID | awk '{print $2}'|xargs kill -9   ## 这里我使用的是 tomcat用户运行的tomcat进程
            echo " OK"  
            # [ $RETVAL -eq 0 ] && rm -f /var/lock/...  
            return $RETVAL  
        fi  
}  
  
case "$1" in  
 start)   
        start  
        ;;  
 stop)    
        stop  
        ;;  
                                                  
 restart)  
         echo $"Restaring Tomcat"  
         $0 stop  
         sleep 1  
         $0 start  
         ;;  
 *)  
        echo $"Usage: $0 {start|stop|restart}"  
        exit 1  
        ;;  
esac  
exit $RETVAL  

那如果你系统里同时运行着多个tomcat实例怎么办?例如 我同时运行两个tomcat 一个是8080端口 一个是9090端口,那么这个脚本改怎么改?很简单,更改路径变量和 kill 正则表达式即可
我们9090端口的tomcat放置的路径为 apache-tomcat-8.0.24-9090
那么脚本内容如下:

[root@server01 tomcatservice]# cat tomcat9090 
#!/bin/sh  

RETVAL=0  
export CATALINA_HOME=/usr/local/apache-tomcat-8.0.24-9090/
start()  
{  
        if [ -f $CATALINA_HOME/bin/startup.sh ];  
          then  
            echo $"Starting Tomcat"  
                su - tomcat -c "$CATALINA_HOME/bin/startup.sh"
            RETVAL=$?  
            echo " OK"  
            return $RETVAL  
        fi  
}  
stop()  
{  
        if [ -f $CATALINA_HOME/bin/shutdown.sh ];  
          then  
            echo $"Stopping Tomcat"  
                su - tomcat -c "$CATALINA_HOME/bin/shutdown.sh"  
            RETVAL=$?  
            sleep 1  
            ps -fu tomcat | grep apache-tomcat-8.0.24-9090|grep -v grep | grep -v PID | awk '{print $2}'|xargs kill -9   ##更改一下grep过滤的路径名称即可
            echo " OK"  
            # [ $RETVAL -eq 0 ] && rm -f /var/lock/...  
            return $RETVAL  
        fi  
}  
  
case "$1" in  
 start)   
        start  
        ;;  
 stop)    
        stop  
        ;;  
                                                  
 restart)  
         echo $"Restaring Tomcat"  
         $0 stop  
         sleep 1  
         $0 start  
         ;;  
 *)  
        echo $"Usage: $0 {start|stop|restart}"  
        exit 1  
        ;;  
esac  
exit $RETVAL  

把脚本放置在/etc/init.d下 就可以用service tomcat8080 stop|start|restart 命令了
并可以使用chkconfig 实现自动启动

chkconfig --level 35 tomcat8080  on
chkconfig --level 06 tomcat8080  off  

发表评论