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进程 的相关文章

  • Linux命令_pstree & 显示进程树

    目录 1 语法 1 1 常用参数 2 常见用法 2 1 指定PID 2 2 指定用户 2 3 显示某个进程详细信息 2 4 指定查看某个进程的父进程 1 语法 pstree 参数 pstree 参数 PID pstree 参数 USER 1
  • Linux--僵死进程(僵尸进程)

    1 僵死进程产生的原因或者条件 当子进程先于父进程结束 父进程没有获取子进程的退出码 此时子进程变成僵死进程 即就是子进程结束了 但父进程还没有结束的时候才会出现僵死进程 代码中 子先于父 后台运行 当一个进程结束的时候 只有进程的退出码被
  • Linux项目实训一

    1 登录进入系统 修改个人密码 passwd 2 使用简单命令 date cal who echo clear 等 了解 linux 命令格式 date命令 再在屏幕上显示或设置系统的日期和时间 如果没有选项和参数 那么将直接显示系统当前时
  • apt-get

    问题 如何查看已经安装的软件 如何确定一个软件是否已经安装 目前常用的 更新本机中的数据库缓存 sudo apt get update 查找包含部分关键字的软件包 sudo apt cache search lt 你要查找的name gt
  • Linux进程的基础知识、fork复制进程

    目录 1 进程的基础知识 1 进程 2 PCB 3 进程的状态 4 并发与运行 2 操作系统发展史 3 fork复制进程 1 进程的基础知识 1 进程 一个正在运行的程序 2 PCB 进程控制块 进程控制块是用一个结构体struct tas
  • 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--文件压缩、解压命令

    1 tar 打包或者解包 tar cvf xxx tar 打包好 的名字 需要打包的所有文件名 2 gzip 压缩或者解压 压缩 gzip 打包的名字 例如 gzip mytar tar 解压 gzip d xxx tar gz 例如 gz
  • apt 安装nginx

    ubuntu和debain下的apt方式安装软件很方便 特别是对于新手安装和卸载nginx 由于nginx不能动态添加模块 所以会经常安装和卸载 升级 apt安装nginx方法 sudo apt add repository ppa ngi
  • Linux实时查看文件/var/log/messages以及这个文件的问题

    耐心看完说不定有你遇到的问题 1 var log messages 首先说一下这个文件的存在 在Ubuntu系统中 这个文件你访问可能提示找不到这个文件 使用tail命令访问 name name sudo tail var log mess
  • 基于云计算的Linux系统命令汇总

    用户管理 useradd 指定用户家目录 d 创建系统用户 r redhat 指定shell s 不创建家目录 M 权限管理 chmod 给用户添加权限 chmod 755 user chown 设置文件或目录的所有者和所属的组 只有文件主
  • Linux常用命令(一)目录、文件(系统:CentOS7)

    Linux常用命令 一 目录 文件 系统 CentOS7 一 目录操作 1 结构 root localhost 当前用户 linux系统安装的主机地址 系统根目录 当前用户家目录 2 切换目录 cd 绝对路径 从根目录开始 如 cd opt
  • Linux--进程间通信、IPC、管道

    目录 1 进程间通信的方法 2 IPC机制 1 有命管道 1 简介 5 管道的特点 6 循环写读 2 无名管道 1 简介 2 代码 4 总体特点 5 管道实现图 1 进程间通信的方法 1 管道 2 信号量 3 共享内存 4 消息队列 5 套
  • 【Linux命令】Linux复制时显示进度

    sudo rsync av progress src dest 效果如下图 更详细的使用 linux 命令 rsync 详解 yspg 217的博客 CSDN博客 linux rsync命令详解
  • Linux下的命令学习--dd命令

    Linux dd 命令用于读取 转换并输出数据 dd 可从标准输入或文件中读取数据 根据指定的格式来转换数据 再输出到文件 设备或标准输出 使用方法 dd if xx of xx bs xx count xx skip xx seek xx
  • linux主要的文件和目录的作用(详细版)

    在 Linux 下 我们看到的是文件夹 目录 在早期的 UNIX 系统中 各个厂家各自定义了自己的 UNIX 系统文件目录 比较混乱 Linux 面世不久后 对文件目录进行了标准化 于1994年对根文件目录做了统一的规范 推出 FHS Fi
  • netstat命令详解

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

    sudo apt get install texinfo
  • Linux--malloc、申请空间、申请是否成功、4G虚拟空间分布、父子进程相关代码及相关命令

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

    目录 1 语法 1 1 常用参数 2 常见用法 2 1 按数值排序 2 2 按文件大小排序 2 3 指定某一列排序 2 4 去重后排序 2 5 生成随机数 2 6 同时查看多个文件 2 7 排序后的值写入文件 可直接修改文件 1 语法 so

随机推荐

  • 初学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