shell脚本中执行kill进程

2023-10-27

继上一篇文章,只是在linux中用命令行中操作,之后我实战在shell脚本中,发现问题累累。

在shell中kill掉程序写的命令:

`ps -ef |grep ${pid} |grep -v 'grep' |awk '{print $3}`

执行shell脚本,运行结果:

sh test.sh 

出现了两个进程,我搜索了一下,产生这种结果的原因:

shell执行这一句命令替换时,做法是fork一个新进程,然后exec替换进程空间。

当命令替换的内容中出现管道时,这个子进程又会fork,为管道中的每个命令再产生一个子进程。

进程树是这样的:

─bash───test───test─┬─grep

因此,本该有一条结果的,现在现在出现两个进程。

哎,我想着算啦,还是不要用脚本实现了,直接用命令kill掉吧,庆幸的是我偶然看到之前同事的做法,然后我稍微微的修改了一下思路,把获取进程的结果追加到文件中:

`ps -ef |grep ${pid} |grep -v 'grep' |awk '{print $3}` > a.txt

运行脚本,sh test.sh aghmx_1

没有进程结果了。这个结果才是我想要的。

最后总结一下,在编程的过程,同志还是需继续努力的。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

shell脚本中执行kill进程 的相关文章

  • apt-get

    问题 如何查看已经安装的软件 如何确定一个软件是否已经安装 目前常用的 更新本机中的数据库缓存 sudo apt get update 查找包含部分关键字的软件包 sudo apt cache search lt 你要查找的name gt
  • Ubuntu 20.04 下Fabric V2.2.0 和 V1.1.0 运行及配置说明(均可运行)

    ubuntu 20 04 下Fabric V2 2 0 和 V1 1 0 运行及配置说明 ubuntu 20 04 下Fabric运行及配置说明 注 本文是对 hyperledger fabric 区块链快速入门教程 错误解决 良好用户体验
  • Linux进程的基础知识、fork复制进程

    目录 1 进程的基础知识 1 进程 2 PCB 3 进程的状态 4 并发与运行 2 操作系统发展史 3 fork复制进程 1 进程的基础知识 1 进程 一个正在运行的程序 2 PCB 进程控制块 进程控制块是用一个结构体struct tas
  • du命令详解

    du命令介绍 du命令 disk usage 用来展示磁盘使用量的统计信息 du和df算是一对同门师兄弟 du侧重在文件夹和文件的磁盘占用方面 而df侧重在文件系统级别的磁盘占用方面 这两个命令都非常的基础 也是每位 Linux工程师都应该
  • ps 命令查看进程下的线程及线程状态

    ps 命令查看进程下的线程及线程状态 查看java所有线程 ps eLf grep java 查看进程下的所有线程cpu利用率 top H p 25120 其中25120为Java进程号 下图红色标注的地方为线程状态 其中总数为28 当前运
  • python中调用linux命令及os.system的返回值

    使用os system cmd 即可在python中使用linux命令 示例 在aa文件夹下创建了bb cc两个文件夹 并且用ls展示出来 coding utf 8 import os path root Download dir path
  • 【转载】Linux下用ls和du命令查看文件以及文件夹大小

    1 ls的用法 ls ll 列出当前目录下所有文件的大小以及所有文件大小的统计总和 显示成字节大小 ls lh 列出当前目录下所有文件的大小以及所有文件大小的统计总和 以KB MB等为单位进行显示 ls l grep wc l 或 find
  • diff和patch使用指南

    diff和patch是一对工具 在数学上来说 diff是对两个集合的差运算 patch是对两个集合的和运算 diff比较两个文件或文件集合的差异 并记录下来 生成一个diff文件 这也是我们常说的patch文件 即补丁文件 patch能将d
  • 推荐一款好用的redis客户端工具

    推荐一款好用的redis客户端工具 redis官方客户端 redis cli 每次都要指定连接IP与端口 连接成功后还要执行auth命令进行口令认证 这个过程比较繁琐 auth命令需要人工干预 不方便自动化执行redis命令 给大家推荐一款
  • Linux命令_netstat & 接口、端口、路由统计

    简介 netstat用于打印网络连接 路由表 接口统计信息 伪装连接和多播成员关系 netstat打印关于Linux网络子系统的信息 打印信息的类型由第一个参数控制 语法 netstat veenNcCF
  • Linux命令_lsof & 网络/文件监控

    官方描述 一个打开的文件可以是一个常规文件 一个目录 一个块特殊文件 一个字符特殊文件 一个执行文本引用 一个库 一个流或一个网络文件 Internet套接字 NFS文件或UNIX域套接字 可以通过路径选择文件系统中的某个文件 也可以选择文
  • netstat命令详解

    命令介绍 netstat命令用于显示与IP TCP UDP和ICMP协议相关的统计数据 一般用于检验本机各端口的网络连接情况 netstat是在内核中访问网络及相关信息的程序 它能提供TCP连接 TCP和UDP监听 进程内存管理的相关报告
  • Linux--消息队列

    目录 一 线程和进程的概念 1 线程 2 进程 3 ipcs 二 消息队列代码 写消息 man msgget返回值问题 添加消息队列 man msgsnd 运行代码 运行结果图 进程和消息的状态 三 消息队列代码 读消息 b c读取消息 执
  • Linux--信号量共享内存

    1 基础知识 1 共享内存是最快的IPC形式 一旦这样的内存映射到共享它的进程的地址空间 这些进程间的数据传递不再涉及内核 即进程不再通过执行进入内核的系统调用来传递彼此的数据 2 共享内存的生命周期随内核 3 注意 共享内存未提供任何保护
  • linux三剑客awk命令详解之函数

    awk函数 在awk命令中 可以自定义函数 awk也有内置的函数 本篇文章主要介绍awk中的内置函数 awk内置函数分类 在awk中 内置函数主要分为算数函数 字符串函数 时间函数 其他函数等 以下列出一些常用的内置函数 算数函数 常用的主
  • less命令打开两个或多个文件时切换文件的快捷键

    在使用 less 命令查看多个文件时 可以使用快捷键 n 和 p 来切换文件 输入 n 后 将切换到下一个文件 输入 p 后 将切换到上一个文件 如下图 less可以打开两个文件 使用快捷键就可以快速查看 而不用退出后再重新打开另一个文件了
  • top命令浅析

    top 使用top命令会实时的刷新系统的负载信息 top命令的选项很多 此处只列举我个人觉得比较实用的几个选项 具体选项可以参考man top 进行查看 u user 只显示指定用户启动的进程 p pid 只显示指定pid的进程 d sec
  • Linux常用命令-压缩解压命令

    一 gz gzip 文件 压缩文件 只能压缩文件 gunzip 压缩文件 解压文件 二 tar 打包目录 tar gz tar命令压缩语法 tar 选项 zcf 压缩后文件名 目录 c 打包 v 显示详细信息 f 指定文件名 z 打包同时压
  • Linux--malloc、申请空间、申请是否成功、4G虚拟空间分布、父子进程相关代码及相关命令

    目录 1 malloc申请空间 2 申请1G或者更大空间 到底能不能成功 3 32位操作系统进程的4G虚拟空间分布 4 父子进程 1 malloc申请空间 进程在执行的过程中 malloc申请空间 不使用时 没有free就会出现内存泄漏 如
  • Linux命令·rm

    linux中删除文件和目录的命令 rm命令 rm是常用的命令 该命令的功能为删除一个目录中的一个或多个文件或目录 它也可以将某个目录及其下的所有文件及子目录均删除 对于链接文件 只是删除了链接 原有文件均保持不变 rm是一个危险的命令 使用

随机推荐

  • 初学java笔记(含遇到的问题及解决方法)

    java浮点数保留n个小数位问题 法一 import java text DecimalFormat DecimalFormat res new DecimalFormat 0 000 System out println res form
  • 神经网络算法开发学习总结--算法应用及优化

    1 算法目标设定 首先要确定一个算法目标及约束条件 比如运行时间 硬件内存限制 准确度等选择算法 学习效果一般尽量采用单个指标进行评估 对于 N 个评价指标 选择其中一个指标作为优化指标 选择剩下的 N 1 个指标作为满足指标 比如针对分类
  • 【计算机网络】HTTP协议详解

    目录 1 HTTP协议概述 2 HTTP协议的工作过程 3 使用抓包工具观察HTTP协议格式 3 1 Fiddler抓包工具 3 2 HTTP协议格式 4 解析HTTP请求 4 1 URL 4 2 请求方法 4 2 1 GET方法 4 2
  • Python-Pygame实践:《杀死冠状病毒》

    2020年春节前后 冠状病毒爆发 遂编写这个游戏 希望武汉人民加油 中国人民加油 杀死病毒 获得胜利 游戏的内容参考的是Eric Matthes的 Python编程从入门到实践 中的项目1外星人入侵 稍作修改 以下是书中对该游戏的描述 在游
  • 【Review】用于SLAM的地点识别(Place Recognition)

    目录 1 Point Cloud Lidar 2021 ICRA ICCV IROS CVPR Others 2020 2019 ICCV 2018 IROS 2 Researchers 3 Visual 2021 IROS ICCV CV
  • linux Mysql 安装

    目录 前言 概念 应用环境 安装步骤 修改密码 按装脚本 MySQL 操作案例 创建数据库 数据表 MySQL 5 7远程登录 前言 本内容主要讲述在 linux 系统下怎么样安装 Mysql 以下讲述过程经过多方面整理而成 概念 MySQ
  • 2021-08-10 layui折叠面板的使用

    官方参考 element模块元素操作文档 Layui 面板 在线演示 Layui 实现效果 html 在折叠面板的父容器设置属性 lay accordion 来开启手风琴 那么在进行折叠操作时 始终只会展现当前的面板 div class l
  • 抓包微信下线的操作思路

    我来详细介绍一下实现微信下线操作的思路 1 首先 你需要清楚微信客户端和服务器之间的通信流程 微信客户端通过向服务器发送登录请求完成登录操作 而微信下线操作则需要模拟微信客户端向服务器发送下线请求 2 接下来 你需要使用网络抓包工具对微信客
  • 矩阵反演公式的推导证明

    已知 A A A为 n n n times n n n阶非奇异矩阵 D
  • caffe的Net类学习

    注意 这是临时的学习心得 乱得很 莫耽误各位时间 caffe的Net类 Net m文件 注释 classdef Net lt handle Wrapper class of caffe Net in matlab properties Ac
  • 基于SpringBoot框架的协同过滤算法的体育用品商城设计与实现

    系统合集跳转 一 系统环境 运行环境 最好是java jdk 1 8 我们在这个平台上运行的 其他版本理论上也可以 IDE环境 Eclipse Myeclipse IDEA或者Spring Tool Suite都可以 tomcat环境 To
  • 数据挖掘简答知识点总结

    绪论 为什么进行数据挖掘 1 已获得的大量数据往往是数据丰富但信息贫乏的 2 计算设备变得廉价且功能强大 3 没有强大的工具的话 数据量已经超过人类的理解能力 4 数据收集存储的速度越来越快 5 传统技术已经不适用于原始数据 6 数据挖掘有
  • 一个函数有多少行代码比较合适?

    要看功能 如果一个方法可以分成好多个子功能的话尽量将其抽取出来作为单独的方法 曾经重构过好多这样的代码 不是写代码的人水平低 主要还是不负责 懒得多想 个人觉得函数的写法应该遵循以下两点基本的原则 1 当发现函数中有重复代码的时候 说明你可
  • html和css

    首先说明 这两者根本不能相比 他们无论从什么方面相比都是不同的 其中html可以通过标准的标签达到一定显示功能效果css则是样式表 是对构成网页的元素 如字体 内容位置等 作出视觉上的设计效果 一个网页可以没有css样式 但不能没有html
  • 变量 、常量、枚举

    2 变量 常量 枚举 2 1 变量 变量 计算机语言能存储计算结果或表示值的抽象概念 可以通过变量名访问 变量名由字母 数字 下划线组成 其中首个字符不能为数字 声明变量的一般形式是使用 var 关键字 var identifier typ
  • 浅谈IPv4协议与IPv6协议的区别

    浅谈IPv4协议与IPv6协议的区别 咱们先了解下什么叫IPv4协议和IPv6协议 IPv4 是互联网协议 Internet Protocol IP 的第四版 应属第一个被广泛应用 构成现阶段互联网技术的基础的协议 1981年 Jon Po
  • 生命在于研究——ensp配置旁挂三层组网示例【OSPF+两个无线网络WPAPSK认证+DHCP】

    ensp配置旁挂三层组网示例 OSPF 两个无线网络WPAPSK认证 DHCP 一 业务需求 1 路由使用OSPF Vlan的网关配置在LSW1上 2 WLan采用三层组网 AC旁挂模式 3 创建两个无线网络 分别为ycu和guest 其中
  • 利用 vant 封装精确到秒的时间选择器,让 vue 开发更简单

    前言 在移动开发中 时间选择的控件比比皆是 但却鲜有类似的组件可以精确到秒级别的 官方可能是考虑到小屏幕手机的显示问题 也可能是使用的场景寥寥无几 但是少不代表没有 所以最近花了点时间基于 vant 组件库封装了一个可以精确到秒级别的时间选
  • MFC关于Radio按钮的操作

    基础介绍 radio button通常都是成组使用的 在一组里面是互斥的 分组的原则是 1 首先将RadioButton控件定好Tab顺序 具体方法 工具栏 格式 gt Tab键顺序 选项选中 然后按照预定的顺序依次点击对话框上面的Radi
  • shell脚本中执行kill进程

    继上一篇文章 只是在linux中用命令行中操作 之后我实战在shell脚本中 发现问题累累 在shell中kill掉程序写的命令 ps ef grep pid grep v grep awk print 3 执行shell脚本 运行结果 s