Linux关闭jetty服务器脚本 - Go语言中文社区

Linux关闭jetty服务器脚本


Linux 停止与启动服务器

在日常的开发中,我们经常需要停止tomcat或jetty服务器进行一些操作后,然后重新启动服务器。
下面即为停止jetty服务器的一段脚本。我们通过脚本来理解一下这里面的脚本

#!/bin/bash
pidlist=`ps -ef|grep start.jar|grep -v "grep"|awk '{print $2}'`
if [ "$pidlist" = "" ];then
      echo "no pid alive"
else
      for pid in ${pidlist}
      {
         kill -9 $pid
         echo "KILL $pid:"
      }
      echo "app stop success"
fi
rm -rf /home/user/jetty/data
cd /home/user/jetty
java -jar start.jar

通过jar包寻找其启动的进程

ps 命令

  • -e 显示所有进程
  • -f 全格式

ps -ef 显示格式:

  • 1.UID 用户ID
  • 2.PID 进程ID
  • 3.PPID 父进程ID
  • 4.C CPU占用率
  • 5.STIME 开始时间
  • 6.TTY 开始此进程的TTY----终端设备
  • 7.TIME 此进程运行的总时间
  • 8.CMD 命令名

grep 命令

正则匹配,输出匹配上数据之外的所有行 -v 选项:

grep -v "match_pattern" file_name

"|"代表其前面的输出作为后面表达式的输入

awk '{print $2,$5}'

可以认为是输出函数 数据行一空格分割,索引从1开始,打印第几个数据

例如:

1271265-20180131140256578-2004903202.png

执行awk '{print $2,$5}'的输出结构为:
1271265-20180131140315734-384919679.png

至此,第一行的脚本我们就知道是什么意思了

pidlist=`ps -ef|grep start.jar|grep -v "grep"|awk '{print $2}'`

查找进程中 包含start.jar的但是又不包含grep 的输出其第2个参数 即进程的ID--PID

逐条kill进程

使用方法

kill[参数][进程号]

其中参数的类型为:
1271265-20180131140330375-123442874.png

脚本中使用

kill -9 $pid

意思是强制终止进程

移除文件

rm

  • -i 删除前逐一询问确认。
  • -f 略过不存在的文件,不显示任何信息,强制删除
  • -r 同时删除该目录下的所有目录层
rm -rf /home/user/jetty/data

强制删除/home/user/jetty/data下的所有文件及目录。

java -jar start.jar

重新启动jetty

在删除文件前先停止服务器的原因

  • 如果不停止服务器,倘若有人使用文件,将会导致程序错误
  • 如果不停止服务,因为程序持有文件的引用,会导致删除失败

转载于:https://www.cnblogs.com/arax/p/8391874.html

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_30321449/article/details/95307425
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-06-12 22:45:39
  • 阅读 ( 614 )
  • 分类:Linux

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢