友。
我使用cloud-config安装和配置DCOS群集。
通常" agentinstall.service"服务需要5分钟才能完成。
是否可以指示systemd执行" agentconfigure.service"仅限于#34; agentinstall.service"的完成
#cloud-config
coreos:
units:
- name: "agentinstall.service"
command: "start"
content: |
[Unit]
Description=agent_setup
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/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 slave
[Install]
WantedBy=multi-user.target
- name: "agentconfigure.service"
command: "start"
content: |
[Unit]
Description=agent_config
After=agentinstall.service
[Service]
Type=simple
User=root
WorkingDirectory=/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 restart dcos-mesos-slave
[Install]
WantedBy=multi-user.target
谢谢。
答案 0 :(得分:0)
使用After/Before
关键字的systemd非常有可能。
你可以使用下面的东西
在agentconfigure.service
中,请提供以下说明
After=agentinstall.service
通常After
确保在启动给定服务后启动相关服务。
由于您提到agentinstall.service
需要5分钟才能完成,因此您必须在agentinstall.service
中添加Type = notify,并在处理完成后从您的应用程序中执行sd_notify()
。
基于此系统,应启动下一个服务,即agentconfigure.service