僵尸进程,孤儿进程,守护进程是什么?
2 个回答
世界上有两个我,一个想去远方,一个身不由己。菜菜僵尸进程的产生是因为父进程没有wait() 子进程。 所以如果我们自己写程序的话一定要在父进程中通过wait() 来避免僵尸进程的产生。 当系统中出现了僵尸进程时,我们是无法通过kill 命令把它清除掉的。 但是我们可以杀死它的父进程,让它变成孤儿进程,并进一步被系统中管理孤儿进程的进程收养并清理。 孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。 僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。发布于 2022-02-11 10:49 •IP属地 黑龙江举报评论收藏
你爱你的玫瑰是因为你在你的玫瑰上花了太多的时间!吴敏僵尸进程:通常来说,使用fork()系统调用从一个父进程创建出一个子进程,子进程退出,是需要父进程调用wait()或者是waitpid()函数来回收子进程的资源,如果父进程没有调用,子进程的信息就会一直在内存中,而不会被回收,变成僵尸进程。 孤儿进程:就是父进程先退出了,它的子进程会被init进程接管,由它来收集子进程的状态。(init进程是内核启动时,创建出来的进程,是一个以root身份运行的普通用户进程,是永远不会停止的。) 守护进程是脱离于终端并且在后台运行的进程,脱离终端是为了避免将在执行的过程中的信息打印在终端上,并且进程也不会被任何终端所产生的终端信息所打断。发布于 2022-02-06 02:25 •IP属地 江西举报评论收藏
公众号进入网站体验更佳

