systemd Type 选项如何影响启动其他单元?

systemd Type 选项如何影响启动其他单元?

手册页systemd.service(5)解释了Type服务的选项:

Type=

配置该服务单元的进程启动类型。simpleforkingoneshotdbus或之一。notifyidle

如果设置为 simple(如果既没有指定也Type=没有指定BusName=,则为 默认值ExecStart=),则预计配置的进程ExecStart=是服务的主进程。在此模式下,如果进程向系统上的其他进程提供功能,则应在守护进程启动之前安装其通信通道(例如,由 systemd 通过套接字激活设置的套接字),因为 systemd 将立即开始启动后续单元。

这对我来说意味着 systemd 不会在这里并行启动这些单元。也在这里:

如果设置为forking,则预计配置的进程 ExecStart=fork()作为其启动的一部分进行调用。当启动完成并且所有通信通道都建立后,父进程预计将退出。子进程继续作为主守护进程运行。这是传统 UNIX 守护程序的行为。如果使用此设置,建议也使用该PIDFile= 选项,以便 systemd 可以识别守护进程的主进程。 一旦父进程退出,systemd 将继续启动后续单元。

换句话说,根据这个手册页,systemd 顺序执行服务单元?那么当 systemd 激活一个守护进程时,它会在激活后续单元之前等待它吗?根本没有意义。

Type对其他机组的启动进程有何影响?

相关内容