লিনাক্সে অপেক্ষা কমান্ড

Wait Command Linux



অপেক্ষা করুন লিনাক্সের একটি অন্তর্নির্মিত কমান্ড যা কোনও চলমান প্রক্রিয়া সম্পন্ন করার জন্য অপেক্ষা করে। অপেক্ষা করুন একটি বিশেষ প্রসেস আইডি বা জব আইডি দিয়ে কমান্ড ব্যবহার করা হয়। যখন শেলটিতে একাধিক প্রসেস চলছে তখন কেবলমাত্র শেষ কমান্ডের প্রসেস আইডি বর্তমান শেল দ্বারা জানা যাবে। যদি এই সময় অপেক্ষা কমান্ড কার্যকর করা হয়, তাহলে এটি শেষ কমান্ডের জন্য প্রয়োগ করা হবে। যদি ওয়েট কমান্ড দিয়ে কোন প্রসেস আইডি বা জব আইডি দেওয়া না হয় তবে এটি সমস্ত বর্তমান চাইল্ড প্রসেস সম্পূর্ণ হওয়ার জন্য অপেক্ষা করবে এবং প্রস্থান অবস্থা ফিরিয়ে দেবে।

অপেক্ষা কমান্ডের প্রস্থান অবস্থা মান নির্দিষ্ট করা শেষ অপারেন্ড দ্বারা নির্দেশিত কমান্ডের উপর নির্ভর করে। যখন কোন প্রক্রিয়া অস্বাভাবিকভাবে বন্ধ হয়ে যায় তখন প্রস্থান অবস্থা 128 এর চেয়ে বড় হবে এবং অন্যান্য কমান্ডের প্রস্থান অবস্থা মান থেকে আলাদা হবে। অপেক্ষা করুন কমান্ডটি মান 0 দিয়ে প্রস্থান করে যখন এটি কোনও অপারেন্ড ছাড়াই কল করে এবং সমস্ত প্রক্রিয়া আইডিগুলি বর্তমান শেল দ্বারা পরিচিত হয়ে যায়। যদি অপেক্ষা কমান্ড কোন ত্রুটি সনাক্ত করে তাহলে এটি 1 থেকে 126 পর্যন্ত কোন মান ফেরত দেয়। যদি শেষ প্রক্রিয়া আইডি অজানা থাকে তবে অপেক্ষা কমান্ডটি 127 মান দিয়ে প্রস্থান করে। আপনি কিভাবে লিনাক্সে অপেক্ষা কমান্ড ব্যবহার করতে পারেন তা এই টিউটোরিয়ালে দেখানো হয়েছে।







উদাহরণ -1: একাধিক প্রক্রিয়ার জন্য অপেক্ষা কমান্ড ব্যবহার করা

নিম্নলিখিত স্ক্রিপ্টটি চালানোর পরে, দুটি প্রক্রিয়া ব্যাকগ্রাউন্ডে চলবে এবং প্রথম ইকো কমান্ডের প্রসেস আইডি $ process_id ভেরিয়েবলে সংরক্ষণ করা হবে। যখন অপেক্ষা কমান্ডটি $ process_id দিয়ে কার্যকর করা হয় তখন পরবর্তী কমান্ডটি প্রথম ইকো কমান্ডের কাজ শেষ করার জন্য অপেক্ষা করবে। দ্বিতীয় অপেক্ষা কমান্ড ব্যবহার করা হয় ' $! 'এবং এটি শেষ চলমান প্রক্রিয়ার প্রক্রিয়া আইডি নির্দেশ করে। ' $? 'অপেক্ষা কমান্ডের স্ট্যাটাস ভ্যালু পড়তে ব্যবহৃত হয়।



#!/বিন/ব্যাশ
বের করে দিল 'অপেক্ষা অপেক্ষা কমান্ড 1' &
প্রসেস_আইডি=$!
বের করে দিল 'অপেক্ষা অপেক্ষা কমান্ড 2' &
অপেক্ষা করুন $ process_id
বের করে দিলচাকরিস্ট্যাটাস দিয়ে বেরিয়ে গেছে$?
অপেক্ষা করুন $!
বের করে দিলচাকরি2স্ট্যাটাস দিয়ে বেরিয়ে গেছে$?

আউটপুট:



$বাশঅপেক্ষা করুন





উদাহরণ -২: কিল কমান্ড ব্যবহার করার পর অপেক্ষা কমান্ড পরীক্ষা করুন

নিম্নলিখিত স্ক্রিপ্টে, প্রক্রিয়া শেষ করার পরে অপেক্ষা কমান্ড কার্যকর করা হয়। স্লিপ কমান্ড একটি পটভূমি প্রক্রিয়া হিসাবে চলছে এবং চলমান প্রক্রিয়াটি বন্ধ করার জন্য কিল কমান্ড কার্যকর করা হয়। তারপরে অপেক্ষা কমান্ডটি সমাপ্ত প্রক্রিয়ার প্রক্রিয়া আইডি দিয়ে কার্যকর করা হয়। আউটপুট সমাপ্ত প্রক্রিয়ার প্রসেস আইডি দেখাবে।

#!/বিন/ব্যাশ
বের করে দিল 'অপেক্ষা কমান্ড পরীক্ষা করা'
ঘুম বিশ &
পিড=$!
হত্যা $ pid
অপেক্ষা করুন $ pid
বের করে দিল $ pidঅবসান করা হয়েছিল।

আউটপুট:



$বাশwait2.sh

উদাহরণ-3: প্রস্থান অবস্থা মান চেক করুন

নিম্নলিখিত স্ক্রিপ্টে, ফাংশন চেক () দুটি যুক্তি মান দ্বারা বলা হয়। টিউটোরিয়ালের শুরুতে আলোচনা করা হয়েছে যে যদি অপেক্ষা কমান্ড সফলভাবে কার্যকর করা হয় তাহলে প্রস্থান মান 0 হবে এবং যদি অপেক্ষা কমান্ড কোন ত্রুটি সনাক্ত করে তবে এটি 1 থেকে 126 এর মধ্যে কোন মান ফেরত দেবে। মান তারপর অপেক্ষা কমান্ড সফলভাবে শেষ হয় এবং যদি আপনি কোন মান শূন্যের বেশি পাস করেন তাহলে এটি অসফলভাবে সমাপ্ত হয়।

#!/বিন/ব্যাশ
ফাংশনচেক()
{
বের করে দিল '$ 1 সেকেন্ডের জন্য ঘুমান'
ঘুম $ 1
প্রস্থান $ 2
}
চেক$ 1 $ 2 &
=$!
বের করে দিল 'অবস্থা পরীক্ষা করা হচ্ছে'
অপেক্ষা করুন $ খ && বের করে দিলঠিক আছে|| বের করে দিলঠিক নাই

আউটপুট:

$বাশwait3.sh3 0
$বাশwait3.sh3 5

আশা করি, এই টিউটোরিয়ালটি ব্যবহার অপেক্ষা কমান্ড সঠিকভাবে শিখতে সাহায্য করবে। লিনাক্সে আরেকটি কমান্ড আছে, যার নাম ঘুম নির্দিষ্ট সময়ের জন্য অপেক্ষা করতে কিন্তু এই কমান্ডগুলির মধ্যে কিছু পার্থক্য রয়েছে। আপনি যদি জানতে আগ্রহী হন ঘুম কমান্ড তাহলে আপনি এই লিঙ্কটি দেখতে পারেন।