Linux服务器上top后发现僵尸进程的解决办法

2023-11-19

今天在熟悉Linux命令的时候,使用top查看服务器负载的时候,发现了zombie(简单理解成僵尸吧)这个参数
在这里插入图片描述
这个参数就代表僵尸进程的含义,什么是僵尸进程呢?(这里盗用一下官方的解释)

一个进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)的数据结构(系统调用exit, 它的作用是使进程退出,但也仅仅限于将一个正常的进程变成一个僵尸进程,并不能将其完全销毁)。

在Linux进程的状态中,僵尸进程是非常特殊的一种,它已经放弃了几乎所有内存空间,没有任何可执行代码,也不能被调度,仅仅在进程列表中保留一个位 置,记载该进程的退出状态等信息供其他进程收集。除此之外,僵尸进程不再占有任何内存空间。它需要它的父进程来为它收尸,如果他的父进程没安装 SIGCHLD 信号处理函数调用wait或waitpid()等待子进程结束,又没有显式忽略该信号,那么它就一直保持僵尸状态,如果这时父进程结束了, 那么init进程自动会接手这个子进程,为它收尸,它还是能被清除的。但是如果如果父进程是一个循环,不会结束,那么子进程就会一直保持僵尸状态,这就是 为什么系统中有时会有很多的僵尸进程。

如何找到僵尸进程的相关信息呢?

  1. ps -e -o stat,ppid,pid,cmd|egrep ‘1

ps:ps命令用于获取当前系统的进程信息.

-e:参数用于列出所有的进程

-o:参数用于设定输出格式,这里只输出进程的stat(状态信息)、ppid(父进程pid)、pid(当前进程的pid),cmd(即进程的可执行文件。

egrep:是linux下的正则表达式工具

'[Zz]’:这是正则表达式,表示第一个字符的位置,[Zz],表示z或者大写的Z字母,即表示第一个字符为Z或者z开头的进程数据,只所以这样是因为僵尸进程的状态信息以Z或者z字母开头。

  1. ps -ef | grep “defunct”

大多数linux系统,也会将僵尸进程标识为defunct

找到之后,就可以通过kill -9来终止父线程了(记得是父线程)。


  1. Zz ↩︎

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

Linux服务器上top后发现僵尸进程的解决办法 的相关文章

  • 如何让 PHP、符号链接和 __FILE__ 很好地协同工作?

    在本地主机上 我有以下目录结构 share www trunk wp content plugins otherfolders share www portfolio wp content symlink Where symlink是一个符
  • 干净地销毁System V共享内存段

    我在用shmget shmat and shmctl分别获取和创建共享内存段 将其附加到进程地址空间中并删除它 我想知道进程是否仍然可以使用共享内存段 即使它已被分离并要求使用删除 shmctl id IPC RMID 在一个过程中 我无法
  • 类似 wget 的 BitTorrent 客户端或库? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 是否有任何
  • 访问 Linux 线程(pthreads)的本地堆栈

    我目前正在实现一个使用多线程但对总内存消耗有要求的应用程序 我希望有一个主线程执行 I O 并有几个工作线程执行计算 目前 我在主堆栈上有几个可供工作人员访问的数据结构 我使用 OpenMP 进行工作分配 由于主 工作者模式不能很好地与 O
  • 在 C 中使用 sqrtf():“未定义对‘sqrtf’的引用”

    我正在使用Linux Ubuntu 12 04 https en wikipedia org wiki Ubuntu version history Ubuntu 12 04 LTS 28Precise Pangolin 29 Precis
  • 当我通过 shell 脚本创建 .txt 文件时,为什么文件名末尾出现问号? [复制]

    这个问题在这里已经有答案了 我正在编写一个 shell 脚本 我应该在其中创建 1 个文本文件 当我这样做时 文件名末尾出现一个问号 是什么原因 我正在 bash 脚本中尝试以下方法 1 grep ERROR a1 gt text txt
  • 如何真正释放 Linux 中的大页面以供新进程使用?

    真的找不到太多关于此的信息 希望有人可以提供帮助 我正在假脱机使用 100GB java 堆作为大数据缓存 为了避免与文件系统缓存等内容发生冲突 并且因为它通常性能更好 我将其分配在大页面中 我保留了 51 200 x 2MB 大页面 一切
  • sed 仅最后一个匹配模式

    我想sed仅文本文件的最后一个匹配模式 输入文件 boy boy girl boy 输出文件 boy boy girl boys 一种方法是反转文件 仅替换第一个匹配项 然后再次反转 tac
  • 是否有我可以运行的操作系统命令来确定是否在基于 Xen 的虚拟机内运行

    我可以在基于 Xen 的虚拟机中运行一个操作系统命令来告诉我它是一个虚拟机而不是物理机 我听说内核对此有一些自我意识智能 例如就像 ps 输出中的额外列之类的 我知道 vmstat 提供了 st 列 但我在运行 Linux 内核 2 6 1
  • 在Linux伪终端中执行从一个终端发送到另一个终端的字符串

    假设我有一个终端 其中 tty 的输出是 dev pts 2 我想从另一个终端向第一个终端发送命令并执行它 使用 echo ls gt dev pts 2 仅在第一个终端中打印 ls 有没有办法执行字符串 不 终端不执行命令 它们只是数据的
  • 在键盘热插拔上加载模块

    我正在尝试学习如何为 Linux 系统编写模块和驱动程序 类似于this https unix stackexchange com questions 120839 usb kernel module does not load on de
  • 从 Linux 命令行发送 SNMP 陷阱消息

    Folks 我需要从 Linux 命令行使用此命令 snmptrap 将自定义消息发送到陷阱侦听器 我需要根据用户设置在 v1 和 v2c 中发送相同的消息 这是我发现的 For v1 snmptrap v 1 c Tas hostname
  • 为什么使用Python的os模块方法而不是直接执行shell命令?

    我试图了解使用Python的库函数执行特定于操作系统的任务 例如创建文件 目录 更改文件属性等 背后的动机是什么 而不是仅仅通过执行这些命令os system or subprocess call 例如 我为什么要使用os chmod而不是
  • 对 sf:: 的未定义引用

    我想用 C 制作 GUI 应用程序 发现 SFML 是一个不错的选择 幸运的是 我使用的是 Linux 所以 SFML 2 4 已经安装在我的系统上 所以我开始搜索一些教程并找到了一个制作简单窗口的教程 但是当我运行代码时 出现错误 提示未
  • 使用 MongoDB docker 镜像停止虚拟机而不丢失数据

    我已经在 AWS EC2 上的虚拟机中安装了官方的 MongoDB docker 映像 并且数据库上已经有数据 如果我停止虚拟机 以节省过夜费用 我会丢失数据库中包含的所有数据吗 在这些情况下我怎样才能让它持久 有多种选择可以实现此目的 但
  • /proc/PID 文件格式

    我想从中检索一些流程信息 proc目录 我的问题如下 中的文件是否有标准格式 proc PID 例如 有这个proc PID status文件与Name t ProcName在第一行 我可以在其他地方用空格代替这个文件吗 t或者类似的东西
  • UDP 广播发送失败:在 Linux 2.6.30 上“网络无法访问”

    我用udp广播写了一个程序 代码段如下 struct sockaddr in broadcast addr socklen t sock len sizeof broadcast addr bzero broadcast addr sock
  • Linux 文本文件操作

    我有一个格式的文件 a href a href a href a href 我需要选择 之后但 之前的文本 并将其打印在行尾 添加后 例如 a href http www wowhead com search Su a a a a a
  • grails 上的同步块在 Windows 上有效,但在 Linux 上无效

    我有一个 grails 应用程序 它依赖于服务中的同步块 当我在 Windows 上运行它时 同步按预期工作 但当我在 ams linux 上运行时 会出现 StaleObjectStateException 该问题在以下示例中重现 cla
  • 如何在 Linux x86_64 上模拟 iret

    我正在编写一个基于 Intel VT 的调试器 由于当 NMI Exiting 1 时 iret 指令在 vmx guest 中的性能发生了变化 所以我应该自己处理vmx主机中的NMI 否则 guest会出现nmi可重入错误 我查了英特尔手

随机推荐

  • Flex布局详细介绍

    flex布局 1 概念 Flex是Flexible Box的缩写 意为 弹性布局 用来为盒状模型提供最大的灵活性 1 1任何一个容器都可以指定为Flex布局 box display flex 1 2行内元素也可以使用Flex布局 box d
  • python scrapy爬取网站数据(一)

    框架介绍 scrapy中文文档 scrapy是用python实现的一个框架 用于爬取网站数据 使用了twisted异步网络框架 可以加快下载的速度 scrapy的架构图 可以看到主要包括scheduler Downloader Spider
  • 【SSH网上商城项目实战20】在线支付平台的介绍

    之前已经完成了首页的显示 用户添加购物车 确认订单等功能 下面就是支付功能的开发了 用户确认了订单后会直接跳转到支付页面进行在线支付 在线支付需要第三方的接口 这一节主要介绍一些关于第三方支付的内容 从下一节开始 我们真正开发在线支付模块
  • 手把手教你使用Python网络爬虫获取基金信息

    一 前言 前几天有个粉丝找我获取基金信息 这里拿出来分享一下 感兴趣的小伙伴们 也可以积极尝试 二 数据获取 这里我们的目标网站是某基金官网 需要抓取的数据如下图所示 可以看到上图中基金代码那一列 有不同的数字 随机点击一个 可以进入到基金
  • 浅析项目失败的原因

    在我们的工作和日常生活中 充斥着各种各样的项目 软件开发也好 工地建设也罢 都是由一个个项目的形式构成的 然而在所有这些项目中 往往是失败的比较多 成功者寥寥 这是为什么呢 为什么一个项目会失败 如何才能提高这个项目的成功概率 我认为这是很
  • 学习日记——MQTT-FX操作说明

    MQTT FX背景 我们的设备 在连接MQTT服务端之前 建议先使用MQTT FX客户端连接MQTT服务端 来检测MQTT服务端的工作状态 MQTT通信时各项参数的正确性 网络连接是否正常 MQTT客户端软件本身就集成了MQTT协议 我们只
  • [C] 跨平台使用Intrinsic函数范例3——使用MMX、SSE2指令集 处理 32位整数数组求和

    作者 zyl910 本文面对对SSE等SIMD指令集有一定基础的读者 以32位整数数组求和为例演示了如何跨平台使用MMX SSE2指令集 支持vc gcc编译器 在Windows Linux Mac这三大平台上成功运行 一 关键讲解 前文
  • Jenkins构建接口自动化

    基于httprunner 2 x的分层设计 通过python pytest allure搭建接口自动化框架实战 在集成到jenkins时 发现接口断言失败的时候 jenkins构建结果仍然是成功 这是因为jenkins构建时 只管执行的文件
  • tomcat下载、乱码、端口号那些事

    注 友友们 仅供参考 下面都是本人实操过的心得 主要是为了做下笔记 也给大家参考一下 有问题欢迎交流和指正 一起升级打怪 一 tomcat下载 tomcat官网下载路径 https tomcat apache org 也可一步到位 1 官网
  • Vuforia Virtual Button(虚拟按钮)使用技巧

    最近一直在摸索Vuforia的使用 Virtual Button算是一个比较容易吸引人眼球的功能 在经过一些测试后 我来总结下自己在探索过程中得到的一些经验 1 如何新建一个Virtual Button工程 导入Vuforia sdk 后把
  • gcd补充说明

    1 下面来看下如何使用gcd编程的异步 dispatch async dispatch get global queue 0 0 处理耗时操作的代码块 通知主线程刷新 dispatch async dispatch get main que
  • 字节跳动Android面试凉凉,挥泪整理面筋,你不看看吗?

    想在金九银十找工作的现在可以开始准备了 这边给大家分享一下面试会遇到的问题 找工作还是需要大家不要担心 由于我们干这一行的接触人本来就不多 难免看到面试官会紧张 主要是因为怕面试官问的答不上来 答不上了千万不要胡扯一些 有了这篇文章 就不一
  • pickle模块

    pickle 提供四个功能分别是dumps loads dump load pickle是将数据以二进制的形式序列化后保存到文件中的 pickle可以储存的数据类型 必须是python中有的 布尔值 整数 浮点数 复数 字符串 字节 Non
  • java.lang.NoClassDefFoundError类错误解决方法

    在开发maven项目时 在完成代码编写后进行本地测试过程中经常会出现如下错误 java lang NoClassDefFoundError Could not initialize class xxx 当看到java lang NoClas
  • 一文彻底弄懂Linux软链接与硬链接,及其实际应用技巧

    本文参考 01 https blog csdn net weixin 33743703 article details 93158780 utm medium distribute pc relevant none task blog Bl
  • 解决idea maven reimport失效问题

    解决idea maven 项目中出现 Unable to import maven project 问题 最近自己搭建了一个项目 maven setting 仓库配置也使用了阿里云配置 maven版本使用的是目前最新版3 6 2 后来发现
  • win11怎么取消pin码实现自动登陆 windows11取消pin码自动登陆的方法步骤

    相信有不少用户最近都安装升级了最新的Win11操作系统 但是安装了之后发现自己的电脑每次开机都必须输入PIN码才可以登陆使用 而每次开机都出现这种情况就非常的麻烦 今天小编就带着的大家一起看看取消PIN码实现自动登陆电脑的方法吧 更多win
  • 力扣笔记(每日随机一题)——最佳买卖股票时机含冷冻期

    问题 中等 给定一个整数数组prices 其中第 prices i 表示第 i 天的股票价格 设计一个算法计算出最大利润 在满足以下约束条件下 你可以尽可能地完成更多的交易 多次买卖一支股票 卖出股票后 你无法在第二天买入股票 即冷冻期为
  • Vulkan再探(11):立方体贴图数组

    08 20 2020 文章目录 立方体贴图数组 创建纹理贴图 图像 拷贝区域 图像视图 着色器 片元着色器 立方体贴图数组 创建纹理贴图 提取信息 cubeMapArray width ktxTexture gt baseWidth cub
  • Linux服务器上top后发现僵尸进程的解决办法

    今天在熟悉Linux命令的时候 使用top查看服务器负载的时候 发现了zombie 简单理解成僵尸吧 这个参数 这个参数就代表僵尸进程的含义 什么是僵尸进程呢 这里盗用一下官方的解释 一个进程在调用exit命令结束自己的生命的时候 其实它并