Linux 中的守护进程

Linux 中的守护进程

我读到过 Linux 中的守护进程是双重分叉的结果。所有守护进程都是双重分叉的结果吗,还是有一些例外?

答案1

“守护进程”不是一种特殊的进程状态;它是一个描述性术语。任何完全不依赖终端或其他用户界面(即在后台运行)但以其他方式提供服务的进程都可以称为守护进程。

双分叉通常用作进程脱离终端并进入后台的机制(以及清除“父进程 ID”信息)。例如,如果您通过直接运行sudo ftpdapachectl start在终端中启动服务,则这是必要的。

然而,不是当进程在正确的状态下启动时,它是必需的。大多数“服务管理器”(如 systemd 或 Upstart)的设计方式是,管理器本身和服务进程都不需要曾经以任何方式连接到终端或“前台”。每当您使用systemctl start服务时,它从一开始就作为守护进程运行,从而使双重分叉变得多余。

相关内容