我有三个systemd服务(Docker容器,但这不重要)。 所有这三项服务都必须运行才能使应用程序function齐全。
为了简化ops团队的程序,我创build了PartOf systemd服务,使用Requires和PartOf指令将它们组合在一起。 现在启动和停止这个服务将开始并以正确的顺序停止三个容器。
最后一个挑战是让第四个系统服务显示正确的状态。 现在它启动服务后显示“加载/不活动”。 是否有可能configuration它的方式,它会显示“加载/主动”当且仅当三个第一个服务启动和运行?
[Unit] Description=This is the group Requires=a.service b.service c.service [Service] ExecStart=/bin/echo "Starting" ExecStop=/bin/echo "Stopping" [Install] WantedBy=local.target
a.service , b.service和c.service包含PartOf=group.service
我认为你需要添加一个After=子句。 如果你的三个服务是链接的,你也可以简化你的Requires 。
如果你还希望这第四个服务停止,当其他3做,你还需要添加一个BindsTo条目。
如:
[Unit] Description=This is the group Requires=c.service After=c.service BindsTo=c.service