tomcat重启脚本

一般,重启tomcat需要先通过执行shutdown.sh命令来停用tomcat,然后执行startup.sh启用tomcat。有时候shutdown.sh关闭不了tomcat,需要我们kill掉tomcat对应的进程。故写此shell完成操作:

 

脚本功能:

1、删除tomcat下的work目录

2、使用shutdown.sh关闭服务

3、接上,如果服务未关闭。则查询当前tomcat的进程是否存在,如果存在则强制kill掉进程

4、启动tomcat

 

#!/bin/sh
p=`pwd`
work=${p}'/work/'
`rm -rf ${work}`
tomcatpath=${p}'/bin'
echo 'operate restart tomcat: '$tomcatpath
pid=`ps aux | grep $tomcatpath | grep -v grep | grep -v retomcat | awk '{print $2}'`
echo 'exist pid:'$pid

if [ -n "$pid" ]
then
{
   echo ===========shutdown================
   $tomcatpath'/shutdown.sh'
   sleep 10
   pid=`ps aux | grep $tomcatpath | grep -v grep | awk '{print $2}'`
   if [ -n "$pid" ]
   then
    {
      sleep 2
      echo ========kill tomcat begin==============
      echo $pid
      kill -9 $pid
      echo ========kill tomcat end==============
    }
   fi
   sleep 2
   echo ===========startup.sh==============
   $tomcatpath'/startup.sh'
 }
else
echo ===========startup.sh==============
$tomcatpath'/startup.sh'

fi

 

将次文件放在tomcat根目录,并且赋予其可执行权限。

 

注意事项:

如果是在非tomcat目录执行命令,使用绝对路径去调用shell,则脚本第二行需要为变量p赋值,值为tomcat目录。举例:p='/opt/temall'

 

小知识点:

1、grep -v grep

     a、grep 是查找含有指定文本行的意思,比如grep test 就是查找含有test的文本的行

     b、grep -v 是反向查找的意思,比如 grep -v grep 就是查找不含有 grep 字段的行

2、awk命令参数

     awk中同时提供了print和printf两种打印输出的函数。

     其中print函数的参数可以是变量、数值或者字符串。字符串必须用双引号引用,参数用逗号分隔。如果没有逗号,参数就串联在一起而无法区分。这里,逗号的作用与输出文件的分隔符的作用是一样的,只是后者是空格而已。

     printf函数,其用法和c语言中printf基本相似,可以格式化字符串,输出复杂时,printf更加好用,代码更易懂。

 

猜你喜欢

转载自hengdu.iteye.com/blog/2400067