এটি উভয় প্রক্রিয়া শুরু করে, প্রথমটির জন্য অপেক্ষা করে যা শেষ হয় এবং তারপরে অন্যটিকে হত্যা করে:
#!/bin/bash
{ cd ./frontend && gulp serve; } &
{ cd ./backend && gulp serve --verbose; } &
wait -n
pkill -P $$
কিভাবে এটা কাজ করে
শুরু করুন:
{ cd ./frontend && gulp serve; } &
{ cd ./backend && gulp serve --verbose; } &
উপরের দুটি কমান্ড দুটি পটভূমিতে প্রসেস শুরু করে।
অপেক্ষা করুন
wait -n
এটি উভয় পটভূমি কাজ সমাপ্ত হওয়ার জন্য অপেক্ষা করে।
-nবিকল্পের কারণে, এর জন্য 4.3 বা তার বেশি বাশ প্রয়োজন।
বধ
pkill -P $$
এটি এমন কোনও কাজকে হত্যা করে যার জন্য বর্তমান প্রক্রিয়াটি পিতামাতার। অন্য কথায়, এটি যে কোনও পটভূমি প্রক্রিয়া চলছে যা এখনও চলছে kill
আপনার সিস্টেমে না থাকলে pkillএই লাইনটি প্রতিস্থাপনের চেষ্টা করুন:
kill 0
যা বর্তমান প্রক্রিয়া গোষ্ঠীকে হত্যা করে ।
সহজেই পরীক্ষার যোগ্য উদাহরণ
স্ক্রিপ্ট পরিবর্তন করে, আমরা এটি gulpইনস্টল না করেও এটি পরীক্ষা করতে পারি :
$ cat script.sh
#!/bin/bash
{ sleep $1; echo one; } &
{ sleep $2; echo two; } &
wait -n
pkill -P $$
echo done
উপরের স্ক্রিপ্টটি চালানো যেতে পারে bash script.sh 1 3এবং প্রথম প্রক্রিয়াটি প্রথমে সমাপ্ত হয়। বিকল্পভাবে, একজন এটি হিসাবে চালাতে পারে bash script.sh 3 1এবং দ্বিতীয় প্রক্রিয়াটি প্রথমে সমাপ্ত হবে। উভয় ক্ষেত্রেই, কেউ দেখতে পাবে যে এটি পছন্দসইভাবে কাজ করে।
gulp ./fronend/serve && gulp ./backend/serve --verbose?