Linux 进程管理

目录

一、僵尸进程

二、孤儿进程 

 三、守护进程

1. 常见的守护进程

2.编写守护进程的步骤

四、进程回收


一、僵尸进程

子进程已经执行完毕但是父进程并没有进行正确的回收,导致子进程的残留资源存放于内核中就形成了僵尸进程。

 僵尸进程是不会占用任何系统资源的,那么为什么要清楚掉僵尸进程呢?

  • 僵尸进程会占用进程表中的一个条目,如果进程表耗尽会导致无法创建新的进程,系统瘫痪。
  • 出现僵尸进程也有可能是父进程出现了崩溃、死锁等问题,可能会导致父进程无法正常运行。
  • 僵尸进程会将系统资源长时间占用,造成系统资源浪费和性能下降。

如何结束僵尸进程?

  • kill -9 命令:使用kill -9命令可以强制结束进程。但是,这种方法会导致进程无法正常释放资源,可能会造成数据丢失或损坏。因此,应该谨慎使用。
  • kill -SIGCHLD 命令:使用kill -SIGCHLD命令可以让父进程重新处理僵尸进程。当父进程收到SIGCHLD信号时,它会调用wait()或waitpid()来回收僵尸进程的资源。
  • 设置系统参数:可以设置系统参数,限制每个用户可以创建的最大进程数,让系统自动回收僵尸进程。
  • 使用wait和waitpid函数:可以在父进程中使用wait或waitpid函数等待子进程终止,并获取其终止状态,以清理僵尸进程。

二、孤儿进程 

孤儿进程是指其父进程已经终止,但它仍然在运行的进程。

  • 当一个进程终止时,它的所有子进程将被init进程(进程ID为1)收养,成为孤儿进程。孤儿进程不会影响系统的稳定性和安全性,因为它们会被init进程管理和回收。但是,如果孤儿进程数量过多,可能会导致系统资源的浪费。
  • 通常情况下,不需要特别处理孤儿进程。但是,如果需要监控和控制孤儿进程,可以使用ps、top、pgrep等命令来查看系统中的孤儿进程,并使用kill命令结束它们。
  • 为了避免产生过多的孤儿进程,可以在编写程序时,确保父进程在结束之前,正确地等待并回收其所有子进程。可以使用wait、waitpid和wait3等函数来等待子进程结束,并获取其退出状态。

 三、守护进程

  • 守护进程(Daemon Process)是一种特殊的后台进程,它在系统引导时启动,并一直运行直到系统关闭。
  • 守护进程通常独立于终端并且没有控制终端,它们通常被用来执行系统级任务,如监控系统状态、提供网络服务等。
  • 一个守护进程的父进程是init进程,因为他真正的父进程再fork出子进程后就先于子进程exit退出了,所以它是由init继承的孤儿进程。

1. 常见的守护进程

  • syslogd:系统日志守护进程,用于收集和记录系统事件信息。
  • cron:计划任务守护进程,用于执行定期任务。
  • sshd:安全外壳守护进程,用于提供远程登录服务。
  • httpd:Apache网页服务器守护进程,用于提供HTTP服务。
  • named:域名系统守护进程,用于解析域名。

2.编写守护进程的步骤

  1.  父进程中执行fork并exit退出
  2. 在子进程中调用setsid函数创建新的会话
  3. 在子进程中调用chdir函数,让根目录成为子进程的工作目录
  4. 在子进程中调用umask函数,设置进程的umask为0
  5. 在子进程中关闭任何不需要的文件描述符

创建守护进程主要是为了让程序在后台长期稳定运行,提供系统级服务,且易于管理和监控。它独立于父进程与终端,较为稳定高效。

四、进程回收

当进程终止时,操作系统释放该进程使用的系统资源,以便为其他进程提供资源使用。

  • 如果是正常退出,父进程调用wait()或waitpid()系统调用进行资源回收。
  • 如果是非正常退出,init进程负责回收子进程资源(僵尸进程)。
  • 内核也会定期扫描并处理未回收的僵尸进程。

注意:一次 wait 或 waitpid 调用只能清理一个子进程,清理多个子进程应使用循环。 

  • 25
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值