繁体   English   中英

是Dameon进程正在占用RAM中的内存,如果有许多守护进程,那么INIT是所有守护进程的父级

[英]is Dameon process is taking memory in RAM ,if number of Daemons process are there how INIT is parent of all daemon process

#include <stdio.h>
#include <signal.h>
void my_isr(int n)
{
        printf("in isr pid=%d ppid=%d signal#=%d\n",getpid(),getppid(),n);
}
main()
{
        printf("hello  %d and bash id : %d\n",getpid(),getppid());
        signal(SIGHUP,my_isr);
        while(1);
}
achul@achul:~/chennai/linux/lan/sm_assignment$ ./a.out 
hello  4220 and bash id : 4150

achul@achul:~/chennai/linux/lan/sm_assignment$ ps -el | grep 4220
0 R  1000  4220     1 63  80   0 -   501 -      ?        00:01:22 a.out

在这里,我首先将SIGHUP发送到bash上,如“ kill -1 4150”,因此无论存在什么进程,所有进程都在接收SIGHUP ..好的,现在进程4220没有任何PTS(控制终端)。 我的疑问是守护进程的数量是否存在,它显示所有父进程都为INIT(1),那么INIT如何管理并浪费RAM中不必要的内存?

几乎不清楚。 但是(大致):

  • 当您杀死外壳程序时,您是在杀死会话负责人进程,通常会杀死它的所有子进程。 如果这创建了孤立进程,则它们将被init所采用。
  • init的一项任务是用wait()终止子进程(通过或不通过),以正确清理进程表以避免僵尸。
  • 当进程终止时,将释放其所有地址空间(并且每个资源都被释放),因此它不再使用任何内存,除非内核进程表中只有几个字节(仅当处于僵尸状态时)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM