Linux 动态监听进程shell

Linux进程替换深度解析:从exec原理到Shell实现与安全实践 在Linux系统编程中,进程管理是核心基础概念之一,它涉及操作系统如何创建、调度和终止执行单元。其底层原理基于进程地址空间、文件描述符和信号机制等操作系统核心组件。这项技术的核心价值在于实现程序动态加载与替换,为系统提供了极大的灵活性和模块化能力。在应用场景上,它不仅是Shell命令执行、服务器进程池管理的基石,还广泛应用于软件热更新、特权分离和安全沙箱等高级工程实践。本文聚焦于Linux进程替换技术,通过剖析exec函数家族的行为差异和文件描述符继承机制,并结合Shell实现与安全编程模式,深入探讨这一“ 阅读详情
背景

前几天在研究线程的时候,看到一句话说java里的线程Thread.run都会在Linux中fork一个的轻量级进程,于是就想验证一下(笔者的机器是Linux的)。当时用top命令的时候,进程总是跳来跳去的,看起来很辛苦,有个工具叫htop,支持filter,感觉也没那么直观。根据在网上查到的资料和man top,整理出了两条语句:

top -p pgrep java | tr "\\n" "," | sed 's/,$//'
top -d 3 -n 100 -b | egrep 'top - | PID | java'

每次手动敲上面的命令比较有点辛苦,于是写了一个shell脚本希望能监听指定进程名的进程变化,这篇文章也由此而来。第一次真正写shell,不足之处望指正,多谢。


思路
  • top命令本身支持动态和静态输出的方式显示进程信息,也支持指定top n个pid,所以这个shell是基于此的。
  • 在支持原始top命令的基础上,我们希望至少有两个功能:
    1、监听指定的进程变化,根据pid监听,动态显示,不会输出到窗口,即只包含当时存在的pid,后续创建的pid是监听不到的;
    2、监听指定进程名的变化,跟进程名关键字定时获取新的进程id集合,这个是静态显示,输出到窗口。

实现
#!/bin/bash
#Author:array7
#Create Time:2015-07-19 04:18:58
#Use: topx para1 para2
#       para1: process name(Fuzzy support)
#       para2: output times, mean re-run top command times
#
#Demo: 
#       demo1. topx java:equal to "top -p 123,321,111".These pids' process name contain "java".
#       demo2. topx java 100: base demo 1,but output the newly result to screen for 100 times.  
if test -z "$1"
then
top
else if test -z "$2"
then
pids=`pgrep $1 | tr "\\n" "," | sed 's/,$//'`
if test -z "$pids"
then
echo "Error:can not found pid of process \"${1}\""
exit 0
fi
top -p $pids
else
eval "top -d 3 -n $2 -b | egrep 'top - | PID | $1'"
fi
fi
demo
  1. 例子支持模糊进程名,比如:mysqld,可以使用mysq
  2. 找出线程名为java的当前已经存在的PID变化:
    topx java
  3. 找出线程名为java所有PID的变化,包含新创建的PID,并输出100次:
    topx java 100
基于深度学习的商品标签识别系统:UI界面 + YOLOv8/v7/v6/v5代码 + 训练数据集 基于YOLO系列模型的商品标签识别系统能够有效解决商品信息提取的自动化问题。通过合理的数据集准备、模型训练和UI设计,我们可以实现一个功能强大的商品标签识别系统。希望本文提供的内容能够为大家提供有价值的帮助。 阅读详情

相关推荐

使用3dmax Morpher制作Unity表情动画

关于游戏人物的面部表情动画 方案一:如果面部骨骼数丰富的话,可以直接做骨骼动画 方案二:采用变形器(3dmax是Morpher,maya是blendshape)修改相应通道的权重值来做表情动画 本文简述方案二的做法。 说明:本文截图中3dsMax版本为2017。笔者第一次使用3dsMax,欢迎指正。 3dmax中导入人物模型,选择需要变形的对象,即head。当前对象附带skin信息。 ...

写作帮助思考 2万+

shell监控端口

vim /root/jiankong.sh #!/bin/bash DATE=`date '+%Y%m%d-%H%M%S'` TCPListeningnum=`netstat -an | grep ":8080" | awk '$1 == "tcp" && $NF == "LISTEN" {print $0}' | wc -l` if [ $TCPListeningnum -eq 0 ] then { echo $DATE"---------------listener

大虾别跑 1174

论文、报告中那些乱七八糟的图(甘特图、卡吉图,桑基图,小提琴图,弦图,螺旋图,风玫瑰图)

在一些论文或报告中,总是会看到一些熟悉的图,但作者总是不能好好说话,非得搞个洋名字、缩写字或者半洋半中的词来显示它多么高大上,有时候这种故弄玄虚、华而不实的写法也实在是让人看了不伦不类,图首先是让读者更容易看懂的,不是让你来故作高深、玩玄学的。

David_jiang 9433

Shell脚本:检测端口是否处于监听状态

用于检查指定主机的端口是否处于监听状态;

heyongshen的博客 714

显示模组Bonding IC气泡问题的诊断与优化策略

本文深入分析了显示模组Bonding IC气泡问题的成因与优化策略,涵盖IC两端剥离气泡、彩虹状水汽气泡、电极下方无规律气泡及IC输入端气泡等类型。通过工艺参数优化、材料存储处理、清洁环境控制及维修品特殊处理等多维度解决方案,有效降低气泡不良率。同时介绍了纳米改性ACF材料、激光辅助排泡技术等前沿解决方案,为触控显示行业提供实用参考。

weixin_26805597的博客 420

集成calibre到cadence virtuoso环境中 load: can‘t access file - “/opt/eda/Mentor/lib/calibre.skl“

项目场景: 设想是将Calibre集成到cadence virtuoso中,但网上的解决办法尝试过在本机上实验都有点问题,因此想记录下来我的解决办法仅供参考。 问题描述: 安装好cadence, calibre之后打开virtuoso,CIW窗口显示 *Error* load: can't access file - "/opt/eda/Mentor/lib/calibre.skl" 问题是出在calibre.skl的加载路径出错,尝试网上的在工程目录下修改.cdsinit文件,添加calibre安装

weixin_52714276的博客 1万+

shell 监听端口_【内网渗透】windows反弹shell方法大全

正向shell:控制端主动发起连接请求去连接被控制端,中间网络链路不存在阻碍。反向shell(反弹shell):被控端主动发起连接请求去连接控制端,通常被控端由于防火墙限制、权限不足、端口 被占用等问题导致被控端不能正常接收发送过来的数据包。ncnc正向shell被控端:nc -lvvp 6666 -e cmd.exe开启监听控制端:nc 192.168.1.62 6666此...

weixin_39594312的博客 1672

Hadoop与Kafka集群部署与优化实践指南

分布式系统是现代大数据处理的核心架构,其中Hadoop作为分布式存储与计算框架,Kafka作为分布式消息队列系统,共同构成了实时数据处理的基础设施。通过HDFS实现海量数据存储,结合YARN进行资源调度,而Kafka则保障了数据流的实时传输与高吞吐。这种技术组合在电商用户行为分析、物联网数据采集等场景中表现卓越。部署过程中需关注硬件资源配置、关键参数调优以及集群监控方案,例如通过调整HDFS块大小和Kafka partition数量来优化性能。合理运用Flume、Spark Streaming等工具可实现系

weixin_29061997的博客 363

shell监听触发执行脚本

1. 文件监控可以配合rsync实现文件自动同步,例如监听某个目录,当文件变化时,使用rsync命令将变化的文件同步。(可用于代码自动发布) 2. 实现条件触发,例如监听ssh秘钥文件,当文件变化时,触发脚本使控制主机可继续免密登录服务器。(可用于ansible自动化关机机器) inotify 是linux内核的一个特性,在内核 2.6.13 以上都可以使用。 yum install inotify-tools 安装以后有两个命令可以用inotifywait 和 inotifywat...

Yonx 1935

一文搞懂YOLO各版本差异:v5易用、v8多任务、v10低延迟,该怎么选?

YOLOv5的“易用”是为了降低入门门槛,适合新手启蒙和旧项目维护;YOLOv8的“多任务”是为了满足工业需求,成为目前的主流版本;YOLOv10的“低延迟”是为了适配边缘计算,代表未来的发展趋势。选型的核心不是“选最新的”,而是“选最适合自己场景的”。记住选型口诀,按场景对号入座,就能避开99%的坑。希望这篇文章能帮你彻底搞懂各版本差异,选对属于自己的YOLO版本!

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1170

实现两端固支梁热力耦合的有限元分析

在本文中,我们将使用Matlab实现两端固支梁的热力耦合有限元分析。我们假设梁的材料是均匀的,梁的截面积为1,长度为1,两端固支,且受到均匀分布的热荷载。接下来,我们需要组装全局刚度矩阵和热传导矩阵。对于两个相邻的元素,它们共享一个节点,因此需要使用连接矩阵将局部矩阵组装成全局矩阵。接下来,我们需要定义元素刚度矩阵和热传导矩阵。然后,我们需要定义载荷向量。然后,我们需要定义边界条件。在这个例子中,梁的两端固支,因此我们需要将两端节点的位移限制为0。最后,我们需要解决线性方程组,得到节点的位移和温度分布。

CyberSparkZ的博客 397

shell脚本监控ip和端口的运行状态并触发邮件告警

ping端口shell代码ping不通发邮件通知直到ping通再次发送成功邮件避免加入定时任务重复执行,须执行完本次才能继续下次,所以把上面代码加入下面代码中,在定时任务中执行下面代码判断代码是否在运行。

qq_45748758的博客 1676

芒果YOLO11改进44:主干Backbone篇之MobileViT::结合最新 ICLR2022 顶会|轻量通用的MobileViT结构(一)Transformer,轻量级、通用且移动友好的视觉转换

MobileViT::结合最新 ICLR2022 顶会|轻量通用的MobileViT结构(一)Transformer,轻量级、通用且移动友好的视觉转换

包括YOLOv5、YOLOv7、YOLOv8等模型改进 373

Shell脚本实现Linux系统和进程资源监控

在服务器运维过程中,经常需要对服务器的各种资源进行监控,例如:CPU的负载监控,磁盘的使用率监控,进程数目监控等等,以在系统出现异常时及时报警,通知系统管理员。本文介绍在Linux系统下几种常见的监控需求及其shell脚本的编写。文章目录:1.Linux使用 Shell 检查进程是否存在 2.Linux使用 Shell检测进程 CPU 利用率 3.Linux使用 Shell检测进程内存使用量 4.Linux使用 Shell检测进程句柄使用量 5.Linux使用 Shell查看某个 TCP 或 UDP 端口是

极客云曦前端 2560

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

使用Shell脚本对Linux系统和进程资源进行监控

Shell 简介 Shell 语言对于接触 LINUX 的人来说都比较熟悉,它是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。实际上 Shell 是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。它没有一般编程语言的“编译 - 链接 - 运行”过程。不仅如此,Shell 有自己的编程语言用于对命令的编辑,它允许用户编写由 shel

pan-zy的专栏 2008

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

使用shell脚本对Linux系统和进程资源进行监控

原文地址:http://www.ibm.com/developerworks/cn/linux/l-cn-shell-monitoring/ 检查进程是否存在 在 对进程进行监控时,我们一般需要得到该进程的 ID,进程 ID 是进程的唯一标识,但是有时可能在服务器上不同用户下运行着多个相同进程名的进程,下面的函数 GetPID 给出了获取指定用户下指定进程名的进程 ID 功能(目前只...

dechuannao3731的博客 662

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【转】使用Shell脚本对Linux系统和进程资源进行监控

原地址:http://www.youkuaiyun.com/article/2012-06-26/2806898 摘要:Shell语言对于接触Linux的人来说都比较熟悉,它是系统的用户界面,提供了用户与内核进行交互操作的一种接口。本文我们以Bash做为实例总结了使用Shell对系统和进程资源进行监控的一些内容,希望对您能有帮助。 Shell语言对于接触Linux的人来说都比较熟悉

xth6314的专栏 799

使用 shell 脚本对 Linux 系统和进程资源进行监控

转载:http://www.ibm.com/developerworks/cn/linux/l-cn-shell-monitoring/index.html Shell语言对于接触Linux的人来说都比较熟悉,它是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。它没有

pengwei2698的专栏 1011

Linux进程创建原理与实践:从fork-exec模型到简易Shell实现

进程是操作系统进行资源分配和调度的基本单位,理解进程创建是掌握并发编程和系统设计的核心基础。在Unix/Linux系统中,进程创建遵循经典的fork-exec模型,通过系统调用实现。fork()系统调用通过写时复制(Copy-On-Write)技术高效地复制父进程的上下文,而exec()系列函数则负责加载并执行新程序,这种分离设计提供了极大的灵活性。从技术价值看,进程创建机制使得程序能够实现并发执行、任务分解和外部命令调用,是构建Shell、服务器守护进程等系统软件的基础。在实际应用场景中,开发者需要关注文

wyjvip333的专栏 590
上一篇: 玩具:加减法验证码(1+?=4)
下一篇: 【亲述】Uber容错设计与多机房容灾方案 - 高可用架构系列
七郎
博客等级 码龄14年 31粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值