linux中Tomcat开机启动shell脚本

记录一个比较好的tomcat启动脚本,截取《OneinStack》,修改如下两个参数即可用。

使用之前修改下面2个参数:

#Location of JAVA_HOME (bin files)
export JAVA_HOME=/usr/java/jdk1.7.0_80    #jdk路径

#CATALINA_HOME is the location of the configuration files of this instance of Tomcat
CATALINA_HOME=/usr/local/tomcat    #tomcat路径 

#TOMCAT_USER is the default user of tomcat
TOMCAT_USER=www    #tomcat启动用户,需要shell权限
tomcat启动、停止、重启,如下图:

 

脚本内容如下:

#!/bin/bash
#
# chkconfig: - 95 15
# description: Tomcat start/stop/status script

#Location of JAVA_HOME (bin files)
export JAVA_HOME=

#Add Java binary files to PATH
export PATH=$JAVA_HOME/bin:$PATH

#CATALINA_HOME is the location of the configuration files of this instance of Tomcat
CATALINA_HOME=/usr/local/tomcat

#TOMCAT_USER is the default user of tomcat
TOMCAT_USER=www

#TOMCAT_USAGE is the message if this script is called without any options
TOMCAT_USAGE="Usage: $0 {\e[00;32mstart\e[00m|\e[00;31mstop\e[00m|\e[00;32mstatus\e[00m|\e[00;31mrestart\e[00m}"

#SHUTDOWN_WAIT is wait time in seconds for java proccess to stop
SHUTDOWN_WAIT=20

tomcat_pid() {
        echo `ps -ef | grep $CATALINA_HOME | grep -v grep | tr -s " "|cut -d" " -f2`
}

start() {
  pid=$(tomcat_pid)
  if [ -n "$pid" ];then
    echo -e "\e[00;31mTomcat is already running (pid: $pid)\e[00m"
  else
    echo -e "\e[00;32mStarting tomcat\e[00m"
    if [ `user_exists $TOMCAT_USER` = "1" ];then
      su $TOMCAT_USER -c $CATALINA_HOME/bin/startup.sh
    else
      $CATALINA_HOME/bin/startup.sh
    fi
    status
  fi
  return 0
}

status(){
  pid=$(tomcat_pid)
  if [ -n "$pid" ];then
    echo -e "\e[00;32mTomcat is running with pid: $pid\e[00m"
  else
    echo -e "\e[00;31mTomcat is not running\e[00m"
  fi
}

stop() {
  pid=$(tomcat_pid)
  if [ -n "$pid" ];then
    echo -e "\e[00;31mStoping Tomcat\e[00m"
        $CATALINA_HOME/bin/shutdown.sh

    let kwait=$SHUTDOWN_WAIT
    count=0;
    until [ `ps -p $pid | grep -c $pid` = Ɔ' ] || [ $count -gt $kwait ]
    do
      echo -n -e "\e[00;31mwaiting for processes to exit\e[00m\n";
      sleep 1
      let count=$count+1;
    done

    if [ $count -gt $kwait ];then
      echo -n -e "\n\e[00;31mkilling processes which didn't stop after $SHUTDOWN_WAIT seconds\e[00m"
      kill -9 $pid
    fi
  else
    echo -e "\e[00;31mTomcat is not running\e[00m"
  fi

  return 0
}

user_exists(){
  if id -u $1 >/dev/null 2>&1; then
    echo "1"
  else
    echo "0"
  fi
}

case $1 in
        start)
          start
        ;;

        stop) 
          stop
        ;;

        restart)
          stop
          start
        ;;

        status)
   status
        ;;

        *)
   echo -e $TOMCAT_USAGE
        ;;
esac   
exit 0

时间: 2024-08-08 19:46:49

linux中Tomcat开机启动shell脚本的相关文章

嵌入式linux中设置开机运行shell脚本的问题

问题描述 嵌入式linux中设置开机运行shell脚本的问题 想写一个设置静态ip的开机自运行的shell脚本,然后百度说放在rc.local什么的文件里,然后我的板子里/etc 下根本没有这个文件,请大神们指点我应该怎么办? /etc 下只有fstab hosts host.conf group init.d inittab ld.so.conf mdev.conf profile passwd resolv.conf services 解决方案 输入命令 vi /etc/network/in

arm linux中添加开机启动

微处理器:S5PV210操作系统:linux3.0.8 前言:    在产品中,基本上都要屏蔽arm开发板中linux系统的对外通信,只应该通过产品的相关APP做相关操作.    因此需要把该APP添加到linux中,使之开机启动. 1,实现    a,打开文件:/etc/init.d/rcS.    b,在该文件末尾添加要执行的APP,或是相关的 *.sh 文件. 2,参考文件    a,http://blog.csdn.net/w7849516230/article/details/6426

linux中nginx日志分析shell脚本

以前使用虚拟主机的时候,查看网站运行日志,就发现了很多异常的恶意的访问.当时因为自己并没有系统权限没办法对这些行为进行屏蔽.现在有了自己的云主机,前端时间查看日志,又发现了很多恶意访问.正好可以通过最近对shell的学习,来做一个简单的日志分析工具,来屏蔽一些这样的操作. 首先,所谓的分析工具,肯定是建立在人为的分析的基础上的.我们来看一点我的域名运行日志:  代码如下 复制代码 78.56.78.115 - - [21/May/2014:16:54:27 +0800] "POST /wp-lo

php-fpm开机自动启动Shell脚本

  这篇文章主要介绍了php-fpm开机自动启动Shell脚本,本文脚本只是范例,其实你编译安装完成后,启动脚本已经生成在编译目录中,只需要复制出来用就可以了,需要的朋友可以参考下 网上有各种版本的php-fpm开机自动启动脚本, 其实你编译后源目录已经生成自动脚本.不用做任何修改即用. ? 1 cp {php-5.3.x-source-dir}/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm php-fpm开机自动启动脚本如下: ? 1 2 3 4 5

如何在 Ubuntu 中管理开机启动应用

在 Ubuntu 中管理开机启动应用 你曾经考虑过 在 Ubuntu 中管理开机启动应用 吗?如果在开机时,你的 Ubuntu 系统启动得非常缓慢,那么你就需要考虑这个问题了. 每当你开机进入一个操作系统,一系列的应用将会自动启动.这些应用被称为'开机启动应用' 或'开机启动程序'.随着时间的推移,当你在系统中安装了足够多的应用时,你将发现有太多的'开机启动应用'在开机时自动地启动了,它们吃掉了很多的系统资源,并将你的系统拖慢.这可能会让你感觉卡顿,我想这种情况并不是你想要的. 让 Ubuntu

CentOS 开机启动自定义脚本详解及实现_Linux

CentOS 开机启动自定义脚本 有些时候我们需要在服务器里设置一个脚本,让他一开机就自己启动.方法如下: cd /etc/init.d vi youshell.sh #将youshell.sh修改为你自己的脚本名 编写自己的脚本后保存退出. 在编写脚本的时候,请先加入以***释 #add for chkconfig  #chkconfig: #description:  #关于脚本的简短描述  #processname:  #第一个进程名,后边设置自启动的时候会用到 说明: 2345是指脚本的

eclipse tomcat-Eclipse中Tomcat无法启动

问题描述 Eclipse中Tomcat无法启动 首先,之前用的好好的,一切都正常!就是用右键run on server方式连接数据库不行(右键java application方式连接数据库正常),后来,也不知道点了啥,一般文件右键 run on server方式就出现Tomcat启动失败.占用eclipse上面工具栏的小猫启动Tomcat,可以正常启动,然后右键run on server方式有出现端口被占用的问题!不知如何里觉,求高手???? 解决方案 Eclipse中无法启动tomcat的问这

Linux中Oracle服务启动和停止脚本与开机自启动_Linux

在CentOS 6.3下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在Linux下安装Oracle的确不会自行启动,必须要自行设定相关参数,首先先介绍一般而言如何启动oracle. 一.在Linux下启动Oracle 登录到CentOS,切换到oracle用户权限 # su – oracle 接着输入: $ sqlplus "/as sysdba" 原本的画面会变为 SQL> 接着请输入 SQL> startup 就可以正

linux中mysql开机自动启动3种方法

  开机启动主要是把启动命令加入到linux的启动服务中去就可以实现了,具体给各位整理两段代码. 第一种手工简单加入即可实现开机自动启动mysql,后面是没事做写的一段shell代码. mysql设为linux服务 代码如下   cp /usr/local/mysql5/share/mysql/mysql.server /etc/init.d/mysqld chkconfig --add mysqld chkconfig --level 2345 mysqld on chown mysql:my