我有一个普遍的问题。*.service在特定*.service成功启动后如何启动 systemd 单元?
更具体的问题是,我如何在开始website.service后才mongodb.service开始?换句话说website.service应该取决于mongodb.service.
在 [Unit] 部分下的 .service 文件中:
[Unit]
Description=My Website
After=syslog.target network.target mongodb.service
重要的部分是mongodb.service
手册页对其进行了描述,但是由于格式化,乍一看并不那么清楚
After=依赖项仅在服务包括After=和服务包括的After=都计划作为启动的一部分启动时才有效。
前任:
a.service
[Unit]
After=b.service
这样,如果两者a.service都b.service启用,则 systemd 将b.service在 之后排序a.service。
如果我没有误解,您要问的是如何在启动b.service时a.service启动,即使b.service未启用。
用于此的指令是Wants=或Requires=低于[Unit]。
website.service
[Unit]
Wants=mongodb.service
After=mongodb.service
Wants=和的区别在于Requires=with Requires=, 启动失败b.service会导致 的启动a.service失败,而 with Wants=,a.service即使b.service失败也会启动。这在的手册页上有.unit详细说明。