返回顶部
首页 > 资讯 > 操作系统 >linux为什么会产生zombie
  • 629
分享到

linux为什么会产生zombie

2023-06-30 14:06:17 629人浏览 安东尼
摘要

这篇文章主要介绍了linux为什么会产生zombie的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇linux为什么会产生zombie文章都会有所收获,下面我们一起来看看吧。linux产生zombie(僵尸进程)

这篇文章主要介绍了linux为什么会产生zombie的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇linux为什么会产生zombie文章都会有所收获,下面我们一起来看看吧。

linux产生zombie(僵尸进程)的原因是:父进程产生子进程后,子进程先于父进程退出,但父进程没有处理子进程发出的退出信号,因此子进程就会被称为僵尸进程;此时使用root身份也不能kill杀死进程,可以通过杀死子进程的父进程来解决。

教程操作环境:linux7.3系统、Dell G3电脑。

linux产生zombie的原因是什么

产生原因:

僵尸进程,英文名zombie process,顾名思义就是死掉的进程。那么僵尸进程究竟是什么产生的呢

僵尸进程产生的原因就是父进程产生子进程后,子进程先于父进程退出,但是父进程由于种种原因,并没有处理子进程发送的退出信号,那么这个子进程就会成为僵尸进程。

这个是所谓的zombie(僵尸进程)是指在fork()/execve()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装SIGCHLD信号处理函数调用waitpid()等待子进程结束,又没有显式忽略该信号,则子进程成为僵尸进程,无法正常结束,此时即使是root身份kill -9也不能杀死僵尸进程。补救办法是杀死僵尸进程的父进程(僵尸进程的父进程必然存在),僵尸进程成为”孤儿进程”,过继给1号进程init,init始终会负责清理僵尸进程。

僵尸进程是指的父进程已经退出,而该进程dead之后没有进程接受,就成为僵尸进程.(zombie)进程

解决方法:

(1) 父进程通过wait和waitpid等函数等待子进程结束,这会导致父进程挂起。

执行wait()或waitpid()系统调用,则子进程在终止后会立即把它在进程表中的数据返回给父进程,此时系统会立即删除该进入点。在这种情形下就不会产生defunct进程。

(2) 如果父进程很忙,那么可以用signal函数为SIGCHLD安装handler。在子进程结束后,父进程会收到该信号,可以在handler中调用wait回收。

(3) 如果父进程不关心重点内容子进程什么时候结束,那么可以用signal(SIGCLD, SIG_IGN)或signal(SIGCHLD, SIG_IGN)通知内核,自己对子进程的结束不感兴趣,那么子进程结束后,内核会回收,并不再给父进程发送信号

(4)fork两次,父进程fork一个子进程,然后继续工作,子进程fork一个孙进程后退出,那么孙进程被init接管,孙进程结束后,init会回收。不过子进程的回收还要自己做。

关于“linux为什么会产生zombie”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“linux为什么会产生zombie”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网操作系统频道。

--结束END--

本文标题: linux为什么会产生zombie

本文链接: https://lsjlt.com/news/329574.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • linux为什么会产生zombie
    这篇文章主要介绍了linux为什么会产生zombie的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇linux为什么会产生zombie文章都会有所收获,下面我们一起来看看吧。linux产生zombie(僵尸进程)...
    99+
    2023-06-30
  • java死锁为什么会产生
    Java死锁是由于多个线程同时持有一些资源,并且每个线程都在等待其他线程释放它们所持有的资源,导致所有线程都无法继续执行的情况。产生...
    99+
    2023-08-08
    java
  • 为什么会产生sql注入漏洞
    sql注入产生的原因是在开发过程中没有注意书写规范的sql和没有对特殊字符进行过滤,从而导致客户端通过全局变量POST和GET提交一些sql语句正常执行,从而达到sql注入的攻击目的,可以通过以下方法来防止sql注入:开启配置文件中的mag...
    99+
    2024-04-02
  • Java中的HashMap为什么会产生死循环
    目录前置知识死循环执行步骤1死循环执行步骤2死循环执行步骤3解决方案总结前言: HashMap 死循环是一个比较常见、比较经典的问题,在日常的面试中出现的频率比较高,所以接下来咱们通...
    99+
    2024-04-02
  • git为什么产生冲突
    随着现代软件开发团队越来越庞大,版本控制成为一项必不可少的任务。Git是一个流行的版本控制系统,它被广泛使用于开源项目和商业项目中。但是,我们常常会遇到一个问题:Git在合并代码时产生了冲突。为什么Git会产生冲突呢?这篇文章将深入探讨这个...
    99+
    2023-10-22
  • 网站漏洞会产生什么影响
    网站漏洞会产生的影响有:数据库中用户的隐私信息被泄露。数据库被恶意操作,数据库的系统管理员帐户被篡改。通过操作数据库对特定网页进行篡改。将目标网站重定向到钓鱼网站进行钓鱼欺骗。利用IFrame嵌入隐藏的恶意网站进行网站挂马。破坏硬盘数据,瘫...
    99+
    2024-04-02
  • S/4HANA的生产订单创建后为什么会自动release
    本篇内容介绍了“S/4HANA的生产订单创建后为什么会自动release”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在S/4HANA系统里...
    99+
    2023-06-04
  • 为什么我会收到 - goroutines are sleeped 错误,因为生产者消费者问题
    php小编柚子在解决编程问题时,可能会遇到一个常见的错误提示:“goroutines are sleeped”。这个错误通常与生产者消费者问题有关。生产者消费者问题是并发编程中的一种经...
    99+
    2024-02-10
    go语言
  • 什么是range()?为什么不生产迭代器?
    什么是range()?为什么不生产迭代器??相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。迭代器是 23 种设计模式中最常用的一种(之一),在 ...
    99+
    2024-04-02
  • linux栈为什么会溢出
    这篇文章主要介绍了linux栈为什么会溢出的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇linux栈为什么会溢出文章都会有所收获,下面我们一起来看看吧。在linux中,栈溢出的原因是系统栈是由高地址往低地址增长...
    99+
    2023-06-30
  • JS循环中使用await会产生什么反应
    本篇内容介绍了“JS循环中使用await会产生什么反应”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!这个问题是这样产生的?某天,在学习异步的...
    99+
    2023-07-05
  • S/4HANA销售订单创建为什么会触发生产订单的创建
    本篇内容主要讲解“S/4HANA销售订单创建为什么会触发生产订单的创建”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“S/4HANA销售订单创建为什么会触发生产订单的创建”吧!调用S/4HANA销...
    99+
    2023-06-04
  • 在 MySQL 中连接 server_id 和 UUID 会产生什么结果?
    是的,您可以轻松地连接服务器ID和UUID。语法如下:SELECT CONCAT(@@ server_id,UUID())在上面的代码中,我们使用@@server_id来获取server_id的值。@@server_id是系统定义的...
    99+
    2023-10-22
  • linux中产生死锁的原因是什么
    这篇“linux中产生死锁的原因是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“linux中产生死锁的原因是什么”文章吧...
    99+
    2023-06-29
  • 为什么云服务器都在贵州生产
    云服务器(Cloud Storage Service)是一种云计算服务,它们通常在一些偏远地区或没有互联网连接的地方运行,以提供高性能的计算服务。这种云计算服务通常包括许多类型的计算资源,包括服务器、数据库、存储设备等,以及必要的网络连接和...
    99+
    2023-10-27
    都在 贵州 服务器
  • Linux为什么会停用黑名单
    这篇文章给大家介绍Linux为什么会停用黑名单,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。最新消息,Linux团队宣布停止使用“黑/白名单”(black/white list)、“主/从模式”(master/slav...
    99+
    2023-06-15
  • 服务器托管为什么会发生故障
    服务器托管发生故障的原因有:1、由于客户远程操作失误而导致服务器托管发生故障;2、在服务器上运行多种应用服务,导致某种服务无法启动或死机,从而导致服务器托管发生故障;3、服务器硬件出现问题,包括主板、内存、硬盘等方面;4、服务器访问量过大,...
    99+
    2024-04-02
  • C++探索构造函数私有化会产生什么结果
    目录对于单个类私有化与继承成员变量与私有化提问:假设只有一个构造方法,如果将之私有化会有什么后果 对于当前类,它是无法实例化的对于它的子类,子类也是无法实例化的 构造函数与是否能够实...
    99+
    2024-04-02
  • 云服务器不稳定会对网站产生什么影响
    网站加载速度变慢:如果云服务器不稳定,可能会导致网站的响应速度变慢,用户访问网站时会感到卡顿和延迟。 网站无法访问:云服务器...
    99+
    2024-05-10
    云服务器
  • Linux生产环境上Sed使用技巧是什么
    今天小编给大家分享一下Linux生产环境上Sed使用技巧是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一个简单的入门一...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作