守护进程和孤儿进程之间的区别?

时间:2017-02-03 01:57:39

标签: linux process operating-system daemon orphan

我对守护进程和孤儿进程感到困惑。据我所知:

  

守护进程:"这些是在后台运行的特殊进程。   它们是系统相关的过程,没有相关的终端。这些   进程以root权限运行,通常提供服务   进程。通常父进程将终止,因此子进程终止   进程将成为一个守护进程,因为它没有任何终端   守护进程,init进程将成为父进程"

     

孤立进程:"当子进程终止之前父进程被终止时,该进程将成为孤立进程。在   在这种情况下,子进程成为孤儿,然后被带入   初始化过程。"

孤儿进程是一个守护进程,反之亦然?如果没有,它们之间的基本区别是什么?

2 个答案:

答案 0 :(得分:2)

一个并不严格意味着另一个: 只需将守护进程视为故意孤立的进程。 它们的目的是在没有父母的情况下工作,但这不适用于每个孤立的进程!

  

有时需要有意地孤立一个进程,通常是为了让长时间运行的作业在没有进一步用户注意的情况下完成,或者启动一个无限期运行的服务或代理;这样的进程(没有关联的会话)被称为守护进程,特别是如果它们无限期地运行

只要把守护进程看作是从事污垢工作的“奴隶”:你有意将它们从你的视线中移开,但不是你想要的或者特别想要的东西;)

我认为维基百科在这种情况下足以满足您的困境:https://en.wikipedia.org/wiki/Orphan_process

答案 1 :(得分:0)

我同意Defrag的回答。我只想提到一个守护进程不一定以root身份运行。实际上,出于安全原因,最好不要以root身份运行某些守护程序,例如Web服务器进程或数据库侦听器进程。如果守护程序存在安全问题,这将限制您的访问权限。

此外,用户自己可以编写作为守护程序运行的程序。