一般问题:在特定.service
成功启动后,如何启动系统.service
?
具体问题:如何在website.service
开始后启动mongodb.service
?换句话说,website.service
应取决于mongodb.service
。
答案 0 :(得分:78)
在[Unit]部分下的.service文件中:
[Unit]
Description=My Website
After=syslog.target network.target mongodb.service
重要的部分是mongodb.service
该联机帮助页描述了它,但由于格式化,第一次看不清楚
答案 1 :(得分:31)
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=
和Requires=
之间的区别在于b.service
,启动a.service
失败将导致Wants=
的启动失败,而即使a.service
失败,b.service
,{{1}}也会启动。这在the man page of .unit
上有详细解释。