文章目录

  • 一、脚本开发
    • 1. 编写脚本
    • 2. 修改脚本
    • 3. 赋予权限
  • 二、脚本执行
    • 2.1. 启动tomact
    • 2.2. 查看tomact状态
    • 2.3. 停止tomact
一、脚本开发
1. 编写脚本
vim start-tomcat.sh

添加以下内容:

#!/bin/bash# description: Tomcat start/stop/status script#Location of JAVA_HOME (bin files)
#JDK安装路径
export JAVA_HOME=/app/jdk1.8.0_301#Add Java binary files to PATH
export PATH=$JAVA_HOME/bin:$PATH#CATALINA_HOME is the location of the bin files of Tomcat
#Tomcat安装路径
export CATALINA_HOME=/app/apache-tomcat-7.0.109#CATALINA_BASE is the location of the configuration files of this instance of Tomcat
#Tomcat安装路径
export CATALINA_BASE=/app/apache-tomcat-7.0.109
#Tomcat进程日志目录,方便启动好直接打印
logfile=/app/apache-tomcat-7.0.109/logs/catalina.out#TOMCAT_USER is the default user of tomcat
#Tomcat的启动用户
export TOMCAT_USER=pis#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=3tomcat_pid() {echo `ps -fe | grep $CATALINA_BASE/conf | grep -v grep | tr -s " "|cut -d" " -f2`
}start() {pid=$(tomcat_pid)if [ -n "$pid" ]thenecho -e "\e[00;31mTomcat is already running (pid: $pid)\e[00m"else# Start tomcatecho -e "\e[00;32mStarting tomcat\e[00m"#if [ `user_exists $TOMCAT_USER` = "1" ];then#   su $TOMCAT_USER -c $CATALINA_HOME/bin/startup.sh#else#引用上面的变量启动脚本sh $CATALINA_HOME/bin/startup.sh#fistatusfi#引用上面变量名logfile 打印日志tail -f  ${logfile}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" ]thenecho -e "\e[00;31mStoping Tomcat\e[00m"sh $CATALINA_HOME/bin/shutdown.shlet kwait=$SHUTDOWN_WAITcount=0;until [ `ps -p $pid | grep -c $pid` = '0' ] || [ $count -gt $kwait ]doecho -n -e "\n\e[00;31mwaiting for processes to exit\e[00m";sleep 1let count=$count+1;doneif [ $count -gt $kwait ]; thenecho -n -e "\n\e[00;31mkilling processes which didn't stop after $SHUTDOWN_WAIT seconds\e[00m"kill -9 $pidfielseecho -e "\e[00;31mTomcat is not running\e[00m"fireturn 0
}user_exists(){if id -u $1 >/dev/null 2>&1; thenecho "1"elseecho "0"fi
}case $1 instart)start;;stop)stop;;restart)stopstart;;status)status;;*)echo -e $TOMCAT_USAGE;;
esac
exit 0
2. 修改脚本

第1处:JAVA_HOME

第2处:CATALINA_HOME
鼠标选中/app/apache-tomcat-7.0.109ctrl+f-【替换】输入实际tomcat路径,点击全部替换即可

第3处: TOMCAT_USER根据实际情况我的用户是pis

3. 赋予权限
chmod +x start-tomcat.sh
二、脚本执行
2.1. 启动tomact
./start-tomcat.sh start
2.2. 查看tomact状态
./start-tomcat.sh status
2.3. 停止tomact
./start-tomcat.sh stop

Tomcat 一键启停脚本 linux相关推荐

  1. tomcat一键启停shell脚本

    #!/bin/bash# Author:FishRoad 2018-09-20pid=`ps -ef|grep tomcat|grep -v grep|awk '{print $2}'` echo $ ...

  2. kafka和zookeeper一键启停脚本(以及kafka关不掉问题解决)

    在设置kafka停止任务的时候需要注意修改配置文件 在kafka和zookeeper各自组件的bin下边配置文件 首先设置kafka的启停配置,在kafka的bin目录下 vim start-kafk ...

  3. Linux自定义shell脚本一键启停微服务jar包

    Java项目在Linux系统中的部署通常是以tomcat等容器化的方式部署,或者jar包的形式直接运行.在自动化部署畅行的今天,仍然会有不少的公司采用手动部署的方式部署 jar 包.而微服务打包形成的 ...

  4. linux启停was命令,linux下的启停脚本

    linux下的根据项目名称,进行进程的启停脚本 #!/bin/bash JAVA=/usr/bin/java APP_HOME=/opt/program/qa/wechat APP_NAME=prog ...

  5. linux下的启停脚本

    linux下的根据项目名称,进行进程的启停脚本 #!/bin/bashJAVA=/usr/bin/java APP_HOME=/opt/program/qa/wechat APP_NAME=progr ...

  6. SpringBoot启停脚本

    由于工作需要,springboot需要脱离原有部署环境,在没有自动部署功能的前提下,为了防止人为误操作以及其他的一些原因,需要规范系统部署,但同时带了人工操作的复杂度,因此需要通过脚本控制来降低人工成 ...

  7. 使用 docker-compose 一键启停 Cromwell

     简介: 本文主要为大家讲解如何使用 docker-compose 一键启停 Cromwell. 镜像下载.域名解析.时间同步请点击 阿里巴巴开源镜像站 一.背景 Cromwell server 的启 ...

  8. Redis批量启停脚本

    Redis多实例部署,往往单个机器中会部署多套Redis实例,对每个Redis停止活着开启较为耗费时间:特此编写批量启停脚本 #!/bin/bashinfo=""" == ...

  9. 多个微服务在服务器后台启停脚本

    当我们的微服务项目逐渐增多时,每次更新都要去重新启动微服务的jar包,因此我们可以写一个批量脚本让所有的微服务启停. 首先每一个微服务就写一个对应的启停脚本,然后写个总控制脚本来控制所有微服务启停脚本 ...

最新文章

  1. 进程间通信 —— 命名管道
  2. Linux下为文件增加列的shell脚本
  3. 解读MySQL 8.0新特性:Skip Scan Range
  4. 基于UDP协议的套接字+socketserver模块
  5. docker与mmdetection
  6. 汉能:让人类像叶绿素一样利用太阳能
  7. java中excel文件导入数据库中_〖JAVE经验〗java中Excel导入数据库里
  8. 华为鸿蒙应用市场抽成,谷歌宣布抽成30%,开发者把华为鸿蒙看做是取代安卓的唯一救星...
  9. linux串口 接收 字符串_非常好用的 Win10 串口调试助手
  10. solr6.0.0 + tomcat8 配置问题
  11. java listview用法_Android ListView使用 | 学步园
  12. 基于大数据的京沪人口流动流量、流向新变化
  13. SSL 1203 书的复制
  14. nofollow能否禁止爬虫爬取
  15. 大学生程序设计邀请赛(华东师范大学)A. 拼音魔法
  16. 大学操作系统期末考试复习经典计算题快速回顾
  17. 订单拆单,电商开发时 经常遇到的问题
  18. 基于SSM的概念可视化程序设计学习系统 毕业设计-附源码021009
  19. 等了20年的物联网,这次真的会成功吗?
  20. latency-nice优先级补丁源码分析

热门文章

  1. gradle(Project)
  2. 星环TDH数据库批量生成表和存储过程
  3. java序列化与反序列化的使用方法-java.io.InvalidClassException错误
  4. 第九次作业 链接查询
  5. ThreadLocal在多线程中的作用和原理浅析(模拟学生入学报到场景)
  6. 肯耐珂萨荣登36氪WISE 2020企服金榜
  7. 键盘突然失灵?VS调试时按F10F11F12都突然没反应?打数字0(ins)时出不来就像按鼠标右键一样?
  8. Blender无法找到安装的插件
  9. fgo怎么把new去掉_fgo命运冠位指定国服NEWYORK2020无限池活动介绍
  10. 关于《Python黑帽子:黑客与渗透测试编程之道》的学习笔记