首页 > 编程知识 正文

一个程序只能对应一个进程吗,引起进程终止的事件有哪些

时间:2023-05-05 04:14:08 阅读:138587 作者:1543

记忆力最好用拙劣的毛笔记录一次defunct过程的由来和处理:

僵尸进程是一个已经死亡的进程,但在进程表(processs table )中仍占有位置(slot )。

由于工艺表空间有限,defunct进程不仅会占用系统内存资源,影响系统性能,而且过多的工艺表会导致系统瘫痪。

我知道每个Unix进程在进程表中都有一个入口点(entry ),核心程序执行该进程时使用的所有信息都存储在入口点中。

通过ps命令查看系统中的工艺信息,可以查看工艺表中的相关数据。 fork ) )通过系统调用创建新进程时,核心进程会在“工艺表”中将入口点分配给新进程,并将相关信息存储在与入口点对应的工艺表中。 这些信息之一是父进程的标识符。

此进程结束自己的生命周期后,将执行(exit ) )系统调用,原始进程表中的数据将替换为进程的退出代码(exit code )、用于执行的CPU时间等数据,系统将变为父进程

由此可见,defunct进程出现在子进程结束之后,但父进程尚未读取这些数据。 defunct进程不能直接用kill -9杀死。 否则就不叫僵尸进程了。

如果知道defunct进程发生的原因,就可以很容易地kill defunct进程。

方法有2,1。 重新启动服务器计算机。 虽然这是最简单和最容易使用的方法,但是如果服务器计算机上运行的是其他程序,则这种方法会很昂贵。 所以,尽量使用以下方法。 2 )如果找到此defunct僵尸进程的父进程并杀死此进程的父进程,则此defunct进程将自动消失。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。