ljzl0513 2016-05-18 01:40 采纳率: 100%
浏览 1863
已采纳

关于如何编写启动linux下的tomcat脚本问题

每次启动tomcat,都需要进入到具体的路径下
/data/uficc/program/apache-tomcat-7.0.65/bin
,然后 ./startup.sh & 启动tomcat,需要重启是都是先kill掉进程后再次启动。
我的需求是:能不能编写个脚本,让我无论在那个路径下,只需要简单输入 :Manage stop tomcat 就可以停止tomcat服务,输入 Manage start tomcat 可以启动tomcat。哪位大能配置过的可以指点一下吗?谢谢了

  • 写回答

3条回答 默认 最新

  • baidu_28702375 2016-05-18 01:55
    关注

    二、tomcat服务脚本

    #!/bin/sh

    tomcat: Start/Stop/Restart tomcat

    chkconfig: 2345 40 20

    description: Tomcat is a Java Servlet Container

    match these values to your environment:

    export CATALINA_BASE=/home/epm/tomcat

    export CATALINA_HOME=/home/epm/tomcat

    export CATALINA_TMPDIR=/home/epm/tomcat/temp

    export JRE_HOME=/home/epm/jdk1.6.0_22

    Source function library.

    . /etc/init.d/functions TOMCAT=/home/epm/tomcat

    start() {

     echo -n "Starting Tomcat:  "
    
     /root/rc.local start
    

    Su – epm –c “ /home/epm/tomcat/bin/startup.sh start”

    }

    stop() {

    echo -n "Stopping Tomcat: "
    
        /home/epm/tomcat/bin/shutdown.sh stop
    

    }

    See how we were called.

    case "$1" in

    start)

      start
    

    ;;

    stop)
    
        stop
    
    ;;
    

    status)

    ;;
    
    restart)
    
       stop
    

    sleep 2

       start
    
    ;;
    

    *)

    echo "Usage: $0 {start stop restart}" ;;

    esac

    exit $RETVAL

    三、生成可用脚本步骤

    根据不同的用户,更改相关参数,把脚本放在/etc/init.d/下。

    1、脚本命名规范:

    以所提供的服务名称命名,比如epm;如有多个epm服务,命名为epm1、epm2、、、

    2、脚本生成方法

    以root权限登录系统,输入命令如下:

    #vi /etc/init.d/epm

    把上面的脚本内容拷贝进去,并作相应修改,然后保存,输入如下命令:

    #chmod a+x epm 生成可执行脚本

    这时,你就可以用服务命令:service epm start service epm stop service epm restart来

    测试服务脚本是否正确,服务是否能够启动。

    3、脚本启动顺序控制

    本次项目中,usportal要先启动,所以当生成usportal服务脚本时,上面的脚本# chkconfig: 2345 40 20处,要修改为# chkconfig: 2345 40 20 其它服务脚本定为# chkconfig: 2345 99 40。

    4、把服务加入自启动,命令如下:

    #chkconfig epm on

    5、重新启动服务器,看能否随服务器启动

    四、服务监控脚本

    1、当某个服务停止后,要进行监控,重新抓起服务,使其运行,脚本内容如下:

    CheckList=('usportal' 'epm' 'eps')

    size=${#CheckList[*]}

    echo '脚本启动,检测以下任务='${CheckList[@]}',检测任务数='$size

    for((n=0;n

    do

    task=${CheckList[n]}
    
    status=`ps -ef | grep "/${task}/tomcat" | grep -v "grep" | wc -l`
    
    if [ "$status" = "0" ]
    
    then
    
        echo '检测到'${task}'工程状态='$status',需要启动'
    
        su - "$task" -c "/home/${task}/tomcat/bin/startup.sh start"
    
    else
    
        echo '检测到'${task}'工程状态='$status',运行正常'
    
    
    
    fi
    

    done

    exit

    说明:CheckList=('usportal' 'epm' 'eps')中的'usportal' 'epm' 'eps'是你创建的用户,中间件tomcat必须在其下。

    2、脚本命名规范

    同服务脚本命名规范,脚本统一放在/root/task/目录下

    五、为服务监控脚本设定任务计划

    为任务计划设定的频率为:每半小时一次

    以root省份登陆,命令如下

    5 * * * * root run-parts /root/jb

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记