如果守护程序不分叉,systemd 会阻止系统启动吗?



如果我以类型设置为"分叉"的方式配置 systemd 服务,而 TimeoutStartSec 设置为"无穷大",那么如果配置的服务永远不会进入后台,我的系统启动会阻塞吗?

如果没有,具有这种配置的副作用是什么?

systemd

实现是通过指定依赖项而不是简单的优先级(由两位数定义的顺序,如05-service67-daemon)来替换已经获得并行启动的 SYS-V 。但是 SYS-V 不受任何约束,因此大多数流程都不会真正正确定义。(优先级系统是一个文件名,依赖项在 init 脚本开头的注释中定义)。

systemd大量借鉴了并行启动的概念,通过实现类似make机制,你可以说只有在构建 A 后才构建 B。

# Makefile
B: A
generate-B
A: A.c
gcc -o A A.c

systemd因此,如果您现在创建第二个服务(即B在我的示例中)依赖于永远不会按预期返回的服务,第二个服务将永远不会启动。即

# Makefile
B: A
generate-B      [never reach since A never ends]
A: A.c
sleep forever

换句话说,由于您的操作系统不依赖于您的服务,因此它仍将按预期加载。但是,如果您开始在第一个服务上创建依赖项,您的环境将受到影响。另一方面,可能有各种类型的故障保护可以绕过,至少部分规避您正在谈论的设置类型。

最新更新