shell 实现项目的启动与停止

简介: shell 实现项目的启动与停止

本文为博主原创,转载请注明出处:

  1. 以tomcat 为例,编写启动脚本:

#!/bin/sh
bin=$(cd `dirname $0`; pwd)
pid=$(ps aux | grep tomcat | grep -v grep | grep -v restart | grep ${bin} | awk '{print $2}')
if [ -n "${pid}" ]; then
   echo "Shutdown..."
   sh ${bin}/shutdown.sh
   sleep 3
    pid=$(ps aux | grep tomcat | grep -v grep | grep -v restart | grep ${bin} | awk '{print $2}')
    if [ -n "${pid}" ]; then
        kill -9 ${pid}
        sleep 1
    fi
fi
echo "Startup..."
sh ${bin}/startup.sh
if [ "$1" = "-v" ]; then
    tail -f ${bin}/../logs/catalina.out
fi

  该脚本实现的逻辑为:先读取当前restart.sh 脚本所在的路径,并 过滤 tomcat 的进程,并判断tomcat 进程是否存在,如果存在,则先调用 shutdown.sh ,停止进程,3s 之后并重新过滤检查tomcat服务进程是否存在,如果依然存在,则使用 kill -9 的方式杀掉进程。之后开始调用启动脚本,并判断执行 restart.sh 脚本时,是否传参 -v ,如果传参 -v , 则遍历当前的实时日志。

  2. 停止服务的脚本编写示例

#!/bin/bash
for pickid in `ps -o pid,args -u $USER|grep tomcat|grep -v grep |awk '{print $1}'`
    do
        echo "kill tomcat ${pickid}"
    kill -15 $pickid
done

  该脚本的逻辑为  循环遍历所有的tomcat 的进程,并循环 kill  -15 的方式停止进程。

 

标签: linux

目录
相关文章
|
6月前
|
Shell Linux
【Linux】进程实践项目(更新中) — 自主shell编写
前几篇文章,我们学习进程的相关知识:进程概念,进程替换,进程控制。熟悉了进程到底是个什么事情,接下来我们来做一个实践,来运用我们所学的相关知识。这个项目就是手搓一个shell模块,模拟实现Xshell中的命令行输入。
63 1
|
6月前
|
Java Shell API
通用Shell脚本执行Spring Boot项目Jar包
通用Shell脚本执行Spring Boot项目Jar包
|
6月前
|
Java Unix Shell
springboot项目重启的shell命令
springboot项目重启的shell命令
|
6月前
|
Shell
shell作业项目留存代码
shell作业项目留存代码
44 1
|
Shell Go 开发工具
如何优雅的通过Shell脚本一键部署GO项目到服务器 |Go主题月
我们可以通过shell脚本把以下操作进行封装:代码同步,打包,编译,重启进程,启动服务;一键执行shell,避免重复劳动。
475 0
如何优雅的通过Shell脚本一键部署GO项目到服务器 |Go主题月
|
运维 Shell 索引
【运维知识高级篇】超详细的Shell编程讲解5(普通数组+关联数组+抓阄项目)
【运维知识高级篇】超详细的Shell编程讲解5(普通数组+关联数组+抓阄项目)
98 0
|
Shell PHP
shell检查php项目是否存在语法错误
当检查一个PHP项目中是否存在语法错误时,我们可以使用Shell脚本来自动化这个过程。在本文中,我们将介绍两种方法来实现这个目标。
208 0
|
JavaScript Java Shell
shell脚本构建项目镜像
使用shell脚本构建本地docker镜像需要具备以下环境。 环境 需要安装:jdk maven nodejs git docker
|
SQL 分布式计算 大数据
电商项目之 DWD 用户启动日志表 Shell 脚本编写|学习笔记
快速学习电商项目之 DWD 用户启动日志表 Shell 脚本编写
电商项目之 DWD 用户启动日志表 Shell 脚本编写|学习笔记
|
关系型数据库 MySQL 大数据
电商项目之 Sqoop 的 Shell 脚本编写|学习笔记
快速学习电商项目之 Sqoop 的 Shell 脚本编写
电商项目之 Sqoop 的 Shell 脚本编写|学习笔记