Shell脚本运行中的停止方法实现

 更新时间:2021年11月24日 10:05:34   作者:super丶Coder  
Linux系统Shell中提交了一个脚本,但是需要停止这个进程,如何处理?本文就来详细的介绍一下,感兴趣的可以了解一下

Linux系统Shell中提交了一个脚本,但是需要停止这个进程,如何处理?

方式1

killall file-flume-kafka

说明:killall是一个命令,不是kill all,file-flume-kafka是脚本名,此方法简单粗暴。

方式二

ssh $i "ps -ef | grep file-flume-kafka | grep -v grep | awk '{print \$2}' | xargs kill"

ps参数:

-e:显示所有进程
-f:全格式显示
ps -ef 第二个参数就是进程ID

grep file-flume-kafka | grep -v grep,file-flume-kafka为脚本名,并去除包含grep的行,避免影响最终结果正确性
grep aaa | grep -v bbb:可以过滤掉查询aaa结果中包含了bbb的行。
grep -v 可以理解为 grep not
举例:cat test.log | grep "login"|grep -v "deviceType"表示找出test.log中包含login关键字,且没有deviceType这个字段的行

awk ‘{print $2}':逐行的读入,以空格为默认分隔符将每行切片,取第二行。
awk参数 -F : 指定输入文件折分隔符。
比如awk -F : ‘/^root/{print $7}' passwd 表示搜索passwd文件以root关键字开头的所有行,并输出该行的第7列。

xargs kill:将前面的运行结果作为kill命令的参数运行。
xargs表示取出前面命令运行的结果,作为后面命令的输入参数。
xargs可选项:-n1,将每一个参数传给后面命令依次执行。

特别注意:
ssh $i 是登录到你执行脚本的那台虚拟机上,i代表虚拟机名字,非本机登录需要设置免密。当在本机上进行此操作时,无需执行这个命令。另外后面$2前的转义\也必须省略,无需转义。命令如下:
ps -ef | grep file-flume-kafka | grep -v grep | awk '{print $2}' | xargs kill

具体例子如下:

假设这个是我正在运行的脚本,我想kill它,但是我不知道他的进程号,只知道脚本的名称。

在这里插入图片描述

我的脚本名称为dws-dwt.sh,根据过滤条件我查找出脚本有两个进程号,为什么会这样呢?

因为你查找进程时用到了grep命令,而这个命令执行的时候带有你查找的进程参数,同时这也是一个进程。

例如 这条命令 ps -ef | grep dws-dwt.sh 其实是分两步执行的 先执行ps -ef 再执行 grep dws-dwt.sh 这个命令本身执行的时候也是一个进程,并把也带有dws-dwt.sh。

所以你要查找dws-dwt.sh进程,需要把 grep dws-dwt.sh这个进程过滤掉,才是最后的结果,怎么过滤呢,肯定不能用dws-dwt.sh做关键字,只能用grep做关键字

执行结果有两个进程号:

ps -ef | grep dws-dwt.sh

在这里插入图片描述

最终结果,得到进程号:

#执行命令停止进程
ps -ef | grep dws-dwt.sh | grep -v grep | awk '{print $2}' | xargs kill 

到此这篇关于Shell脚本运行中的停止方法实现的文章就介绍到这了,更多相关Shell脚本运行中的停止方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Linux下date命令,格式化输出,时间设置方法

    Linux下date命令,格式化输出,时间设置方法

    下面小编就为大家带来一篇Linux下date命令,格式化输出,时间设置方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • Linux中10个方便的Bash别名

    Linux中10个方便的Bash别名

    今天小编就为大家分享一篇关于Linux中10个方便的Bash别名,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-09-09
  • 进程状态ps -ef中的e、f含义讲解

    进程状态ps -ef中的e、f含义讲解

    这篇文章主要介绍了进程状态ps -ef中的e、f含义讲解,通过本文学习我们知道-e和-A都显示有关其他用户进程的信息,包括那些没有控制终端的进程,-f显示用户id,进程id,父进程id,最近CPU使用情况,进程开始时间等等,具体含义及更多命令跟随小编通过本文学习
    2022-11-11
  • linux bash shell中case语句的实例

    linux bash shell中case语句的实例

    本文介绍下,在bash shell编程中,有关case语句的一个例子,学习下case语句的用法,有需要的朋友参考下
    2013-11-11
  • Linux用户和用户组管理方法介绍

    Linux用户和用户组管理方法介绍

    这篇文章介绍了Linux用户和用户组管理的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • Linux Shell脚本系列教程(四):使用函数添加环境变量

    Linux Shell脚本系列教程(四):使用函数添加环境变量

    这篇文章主要介绍了Linux Shell脚本系列教程(四):使用函数添加环境变量,本文对环境变量的一知识作了介绍,并给出普通添加环境变量和使用函数添加环境变量的方法,需要的朋友可以参考下
    2015-06-06
  • 一天一个shell命令 linux文本操作系列-touch命令用法

    一天一个shell命令 linux文本操作系列-touch命令用法

    这篇文章主要介绍了一天一个shell命令 linux文本操作系列-touch命令用法 ,需要的朋友可以参考下
    2016-06-06
  • Linux 中的export与alias命令详解

    Linux 中的export与alias命令详解

    export和alias都是用来简化命令行输入的工具。export用于设置环境变量,环境变量是一些系统级别的变量,用于指定一些系统的默认值或者搜索路径等,这篇文章主要介绍了Linux 中的export与alias命令,需要的朋友可以参考下
    2023-04-04
  • Linux shell命令行查询文件中内容常用的命令及其用法

    Linux shell命令行查询文件中内容常用的命令及其用法

    在Linux中,查找文件内容可以使用多种命令,如grep、find、ack和ripgrep,这些工具各有特点,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-09-09
  • linux仿写chmod命令

    linux仿写chmod命令

    这篇文章主要介绍了linux仿写chmod命令的方法,需要的朋友可以参考下
    2014-02-02

最新评论