Shell脚本运行中的停止方法_super丶Coder的博客-程序员秘密_shell 停止执行

技术标签: Shell  awk  shell  linux  每天一个小技巧  

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



版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_48088285/article/details/108156212

智能推荐

10 款免费 PDF 阅读器软件工具分享_分享者花花的博客-程序员秘密

您可能听说过 Adob​​e Acrobat 或 奇客PDF 等 PDF 阅读器,这是当今市场上最常见和使用最广泛的两种阅读器,但还有很多其他选择。那么,他们到底做了什么?PDF 阅读器可帮助您在一个方便的位置创建、管理和保护所有 PDF 文件。您可以使用 PDF 阅读器简化和修改原本很难完成的任务。

bzoj3550【ONTAK2010】Vacation_AaronPolaris的博客-程序员秘密

网络流+线性规划——缘分落地生根是我们

Unity Shader 之 渲染队列(Queue)、深度测试(ZTest)、深度写入(ZWrite) 让物体或UI永远显示在最前面_队列ui 合批渲染_仙魁XAN的博客-程序员秘密

Unity Shader 之 渲染队列(Queue)、深度测试(ZTest)、深度写入(ZWrite) 让物体或UI永远显示在最前面目录Unity Shader 之 渲染队列(Queue)、深度测试(ZTest)、深度写入(ZWrite) 让物体或UI永远显示在最前面一、简单介绍二、渲染队列三、深度测试(ZTest)四、深度写入(ZWrite)五、ZTest 和 ...

PO / PO tutorial_po中的a2a b2b_SAP小白kenny的博客-程序员秘密

What is SAP PI ?PI ( Process Integration) is an enterprise integration platform that provides seamless integration between SAP and non-SAP applications within the organization A2A ( Application to Application) or even outside the organization B2B ( Bus..

【POJ3693】Maximum repetition substring 后缀数组恶心题_空灰冰魂的博客-程序员秘密

题意:给一个字符串,然后找一个子串,使子串满足其中连续重复子串最多。比如ababab,重复次数为3,ababa,重复次数为1(abab是两次)恶心在于还要输出最小字典序。题解网上都有,不发了。代码:#include #include #include #include #define N 101000#define LOGN 20#define

ASP.NET配置文件machine.config与性能_Fendouche的博客-程序员秘密

与传统的ASP不同的是,ASP.NET不是运行在IIS的地址空间,而是有自己的进程。该进程可以通过XML配置文件machine.config进行配置。ASP.NET进程: aspnet_wp.exe传统的ASP程序的内存问题或配置不当总是会导致Internet Information Server (IIS)要么停止响应,要么崩溃。其根本原因是由于ASP进程是在IIS的进程空间中运行的。为此,AS

随便推点

裴波那契数列代码实现_yqj520whm的博客-程序员秘密

裴波那契数列:1    1    2    3    5    8    13 ..................................代码实现(使用递归):

std::lock_guard作用域范围_lock_guard作用范围_XiAoma123_1的博客-程序员秘密

std::lock_guard作用域内自动上锁解锁对于不同线程访问统一资源时,为了避免冲突一般都通过对目标共享变量上锁和解锁,让共享变量互斥第一种方式:一般情况可以在共享变量前后分别上锁解锁,至少需要以下三个操作复制代码// 定义锁std::mutex m_mutex;// 上锁m_mutex.lock();// 上锁和解锁之间为对共享变量的访问操作.....// 解锁m_mutex.unlock();第二种方式:使用std::lock_guard,在std::loc

MATLAB RTW与VS_liYX9553的博客-程序员秘密

1.除了生成的全部*.c;*.h文件外,还有几个系统文件需要拷贝。2.全部取消预编译头。过程遇到的错误:1.LINK : fatal error LNK1104: 无法打开文件“*.lib”确保*.lib确实生成。“项目属性” -> “配置属性” -> “链接器” -> “输入”中的“附加依赖项”,将“*.lib”添加进去。注意库路径。“项目属性” ->

mybatis-plus使用selectById查询时表的主键不是id字段的解决办法_mybatis plus selectbyid_Atm猿的博客-程序员秘密

一、背景项目:Springboot mybatis-plus mysql今天项目中新建了一张表,表的主键是area_code,在程序中直接使用mybatis-plus内置的selectById方法进行表数据查询,查询时直接报错:运行时异常: Invalid bound statement (not found): com.huanong.avatar.shuidi.mapper.SdWeatherThresholdMapper.selectById二、原因mybatis的selectById

离线搭建C++开发环境(适用内网开发)_libssl-dev离线安装_白河愁_的博客-程序员秘密

下载依赖项1.在有网络的电脑上,安装全新的ubuntu开发环境sudo apt install gcc make g++ vim libssl-dev cmakesudo apt-get install build-essential autoconf libtool pkg-configsudo apt-get install clang libc++-dev通过apt-get install下载安装的包,deb包都保存在**/var/cache/apt/archives/** 目录下,不执行

CMY和CMYK彩色模型_试述cmy与cmyk颜色模型的差异_SilenceHell的博客-程序员秘密

CMY和RGB其实是互补的颜色类型。 ⎡⎣⎢CMY⎤⎦⎥=⎡⎣⎢111⎤⎦⎥−⎡⎣⎢RGB⎤⎦⎥[CMY]=[111]−[RGB]\left [\begin{matrix}C \\M \\Y \end{matrix}\right ]=\left [\begin{matrix}1 \\1 \\1 \end{matrix}\right ]-\left [\begin{ma...

推荐文章

热门文章

相关标签