मैं बेड़े के साथ systemd इकाइयों को शेड्यूल करने के लिए CoreOS का उपयोग कर रहा हूं। मेरी दो इकाइयाँ हैं ( firehose.service
और firehose-announce.service
। मैं firehose-announce.service
शुरू करने और साथ-साथ रुकने की कोशिश कर रहा हूँ firehose.service
। यहाँ के लिए इकाई फ़ाइल है firehose-announce.service
:
[Unit]
Description=Firehose etcd announcer
BindsTo=firehose@%i.service
After=firehose@%i.service
Requires=firehose@%i.service
[Service]
EnvironmentFile=/etc/environment
TimeoutStartSec=30s
ExecStartPre=/bin/sh -c 'sleep 1'
ExecStart=/bin/sh -c "port=$(docker inspect -f '{{range $i, $e := .NetworkSettings.Ports }}{{$p := index $e 0}}{{$p.HostPort}}{{end}}' firehose-%i); echo -n \"Adding socket $COREOS_PRIVATE_IPV4:$port/tcp to /firehose/upstream/firehose-%i\"; while netstat -lnt | grep :$port >/dev/null; do etcdctl set /firehose/upstream/firehose-%i $COREOS_PRIVATE_IPV4:$port --ttl 300 >/dev/null; sleep 200; done"
RestartSec=30s
Restart=on-failure
[X-Fleet]
X-ConditionMachineOf=firehose@%i.service
मैं BindsTo
इस धारणा के साथ उपयोग करने की कोशिश कर रहा हूं कि शुरू और बंद firehose.service
करना भी शुरू या बंद हो जाएगा firehose-announce.service
। लेकिन यह कभी सही ढंग से नहीं होता है। यदि firehose.service
रोक दिया firehose-announce.service
जाता है , तो विफल स्थिति में चला जाता है। लेकिन जब मैं शुरू करता हूं firehose.service
, तो firehose-announce.service
शुरू नहीं होता।
मुझसे यहां क्या गलत हो रहा है?