Service 在特定服务之后启动systemd服务?
我有一个一般性问题。在特定的Service 在特定服务之后启动systemd服务?,service,systemd,Service,Systemd,我有一个一般性问题。在特定的*.服务成功启动后,如何启动系统D装置*.服务 更具体的问题是,只有在mongodb.service启动之后,我如何启动website.service?换句话说,website.service应该依赖于[Unit]部分下.service文件中的mongodb.service: [Unit] Description=My Website After=syslog.target network.target mongodb.service 重要的部分是mongodb.s
*.服务
成功启动后,如何启动系统D装置*.服务
更具体的问题是,只有在
mongodb.service
启动之后,我如何启动website.service
?换句话说,website.service
应该依赖于[Unit]部分下.service文件中的mongodb.service
:
[Unit]
Description=My Website
After=syslog.target network.target mongodb.service
重要的部分是mongodb.service
手册页对此进行了描述,但由于格式问题,第一眼就看不清了
After=
依赖关系仅在包含After=
的服务和After=
包含的服务都计划作为启动的一部分启动时有效
例:
这样,如果a.service
和b.service
都启用了,a.service
之后,系统D将订购b.service
如果我没有误解的话,您要问的是当a.service
启动时如何启动b.service
,即使b.service
未启用
这方面的指令是[Unit]
下的Wants=
或Requires=
website.service
[Unit]
Wants=mongodb.service
After=mongodb.service
Wants=
和Requires=
之间的区别在于,使用Requires=
时,启动b.service
失败将导致启动a.service
失败,而使用Wants=
时,a.service
将启动,即使b.service
失败。这将在上详细解释 这个问题属于ServerFault,不是吗?@Rémi在两个网站上都没关系!:)@不,只是3.5年后你才回答,这不是一个关于主题的问题。这与编程无关。SF或更好的Unix/Linux.SE更合适。Stack Overflow是一个用于编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。我们的mongod服务启动了一个非常大的数据库。后续服务无法正确启动,因为mongo在启动后似乎需要更多时间加载数据库。因此,我们的第二个服务启动但失败,因为mongo已成功启动,但尚未加载数据库。也许一个延迟可能会帮助……系统是否有可能处理下面的SnEnvio。考虑多个服务A、B、C、D。如果A存在,我希望B,C,D只在A之后开始,否则如果A不存在,B,C,D可以按任意顺序开始。请help@achilles你能在不需要的系统上创建一个假的服务吗。通过这种方式,B、C、D的依赖关系可以保持简单After=website.service
表示“在website.service之后执行我的单元!”。这就是文档中解释的内容:。我假设“列出的单位”是“After=”右侧的单位。这样,如果a.service和b.service都启用,那么systemd将在a.service之后订购b.service。你不是说另一种方式吗<代码>交换(a,b)
website.service
[Unit]
Wants=mongodb.service
After=mongodb.service