systemd 中的requires, wants, before, after - kissrule

六月 16, 2024 [Linux 与系统] #Linux #obsidian #操作系统原理 #网络

systemd 中的requires, wants, before, after - kissrule


出处:https://www.cnblogs.com/longchang/p/10985352.html


依赖关系和前后顺序

依赖关系,前后顺序是比较容易混淆的,当使用Requires和Wants的时候,

unit A Requires unit B, 那么A和B会一起启动,如果B失败了,A也就失败了,只有B成功了,A才能成功;

unit A Wants unit B, 那么A和B会一起启动,如果B失败了,A也就失败了,只有B成功了,A才能成功;

unit A Requires unit B, 那么同时最好unit A中写上:After=B

unit处理依赖关系:Requires和Wants的区别?

使用systemd时,可通过正确编写单元配置文件来解决其依赖关系。典型的情况是,单元A要求单元B在A启动之前运行。在此情况下,向单元A配置文件中的 [Unit] 段添加 Requires=B 和 After=B 即可。若此依赖关系是可选的,可添加 Wants=B 和 After=B。请注意 Wants= 和Requires= 并不意味着 After=,即如果 After= 选项没有制定,这两个单元将被并行启动。 依赖关系通常被用在服务(service)而不是目标(target)上。例如, network.target 一般会被某个配置网络接口的服务引入,所以,将自定义的单元排在该服务之后即可,因为 network.target 已经启动。

unit文件中,服务类型: Type= 参数

编写自定义的 service 文件时,可以选择几种不同的服务启动方式。启动方式可通过配置文件 [Service] 段中的 Type= 参数进行设置。