জেমসের উত্তর 1 থেকে 1 নির্ভরতার জন্য কাজ করে। এক থেকে অনেকের জন্য, অর্থাত্ বি, সি, এবং ডি পরিষেবাগুলির আগে পরিষেবা শুরু হয় এটিকে নিশ্চিত করার জন্য, আপনাকে অন্য একটি পদ্ধতি গ্রহণ করতে হবে। আপনি রেফারেন্সের জন্য বর্তমান পোর্টম্যাপ স্ক্রিপ্টগুলি দেখতে পারেন তবে এখানে সাধারণ পদ্ধতিটি রয়েছে: একটি অপেক্ষা স্ক্রিপ্ট তৈরি করুন।
পরিস্থিতি: আপনি চান আপনার পরিষেবা এ সর্বদা পরিষেবা-বি, পরিষেবা-সি, এবং পরিষেবা-ডি এর আগে চলুক।
সমাধান: পরিষেবা এ এর জন্য একটি অপেক্ষা স্ক্রিপ্ট তৈরি করুন "এটিকে কল করুন" /etc/init/service-a-wait.conf "
# service-a-wait
start on (starting service-b
or starting service-c
or starting service-d)
stop on (started service-a or stopped service-a)
# We know that we have more than one job that needs to wait for service-a and
# will make use of this service, so we need to instantiate.
instance $JOB
# Needed to make starting the job successful despite being killed
normal exit 2
task
script
status service-a | grep -q "start/running" && exit 0
start service-a || true
# Waiting forever is ok.. upstart will kill this job when
# the service-a we tried to start above either starts or stops
while sleep 3600 ; do :; done
end script
সরল ইংরেজিতে এর অর্থ কী: পরিষেবা বি, সি, বা ডি সংকেত যখন তারা শুরু করতে চায়, পরিষেবা-ক চলমান অবধি তাদের শুরু করতে অপেক্ষা করতে হবে। পরিষেবা-অপেক্ষার কাজটি সার্ভিস-এ শুরু না হওয়া অবধি চালনার জন্য ডিজাইন করা হয়েছে। একবার পরিষেবা-অপেক্ষার প্রস্থান বন্ধ হয়ে যায়, এখন পরিষেবাদি খ, সি, এবং ডি চালিয়ে যাওয়া এবং চালানোর জন্য বিনামূল্যে are
এর দ্বারা বিপরীত নির্ভরতাগুলির কোনও শুরু করার চেষ্টা করার আগে এটি পরিষেবা-এ প্রস্তুত এবং চলমান হওয়ার বিষয়টি নিশ্চিত করবে।
দ্রষ্টব্য: এই "শুরু করুন ... বা .. বা .." দৃশ্যে "উদাহরণ instance জওবি" লাইনটি গুরুত্বপূর্ণ। অন্যথায় আপনি কেবল বি, সি, বা ডি এর যে কোনওটিকে প্রথমে আগুন জ্বালিয়ে ব্লক করবেন।
(তাত্ক্ষণিকতা সততার সাথে আরও ভাল ব্যাখ্যা পাওয়ার যোগ্য now এখনকার জন্য, কেবল এটি করুন;)