আমি বহর সহ সিস্টেমড ইউনিটগুলির শিডিয়ুল করতে 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
আরম্ভ করা হয় না।
আমি এখানে কি ভুল করছি?