Utp*_*esh 5 systemd systemd-timer
我使用cloud-config来安装和配置DCOS集群。
通常agentinstall.service
服务需要 5 分钟才能完成。
是否可以指示systemdagentconfigure.service
仅在 agentinstall.service
完成后执行?
#云配置 核心: 单位: - 名称:“agentinstall.service” 命令:“开始” 内容: | [单元] 描述=代理设置 之后=网络.目标 [服务] 类型=简单 用户=root 工作目录=/tmp ExecStartPre=/bin/curl -o /tmp/dcos_install.sh http://bootstapnode-0.dev.myztro.internal:9090/dcos_install.sh ExecStartPre=/bin/chmod 755 dcos_install.sh ExecStart=/bin/bash dcos_install.sh 从站 [安装] WantedBy=多用户.target - 名称:“agentconfigure.service” 命令:“开始” 内容: | [单元] 描述=代理配置 之后=agentinstall.service [服务] 类型=简单 用户=root 工作目录=/opt/mesosphere/etc/ ExecStartPre=/bin/echo "MESOS_ATTRIBUTES=cluster:uploader" >> /opt/mesosphere/etc/mesos-slave-common ExecStartPre=/bin/rm -f /var/lib/mesos/slave/meta/slaves/latest ExecStart=/usr/bin/systemctl 重新启动 dcos-mesos-slave [安装] WantedBy=多用户.target
谢谢。
我不知道如何使用 systemd 来完成此任务,因为我认为它只关心单元的启动和运行。例如,您可以使用After=
强制一个单元仅在指定单元启动后启动,或者两个单元并行启动。
Wants=
将导致指定的单元并行启动(如果所需的单元尚未启动/活动),而不是您想要的。
Requires=
After=
如果与on结合使用agentconfigure.service
,将确保在处于活动状态(“忙”)agentconfigure.service
之后启动。agentinstall.service
现在,您可以有一个agentconfigure.service
等待循环,例如最多 5 分钟,并agentinstall.service
在继续实际工作之前定期检查是否完成。我看到的唯一选择。
编辑:我认为更好的另一个选择......安装成功时agentinstall.service
启动,然后退出。agentconfigure.service
归档时间: |
|
查看次数: |
1508 次 |
最近记录: |