উত্তর:
কীটি হ'ল "অপেক্ষা" কমান্ড:
#!/bin/bash
/my/process &
/another/process &
wait
echo "All processes done!"
cmd1 & p=$!; cmd2 & q=$!; while sleep 1; do echo still running ; done& wait $p $q; kill $!;
সঙ্গে wait
আপনি গ্র্যানুলারিটি থাকতে পারে আপনি প্রয়োজন:
sleep 1 &
PID1=$!
sleep 2 &
PID2=$!
wait $PID1
echo 'PID1 has ended.'
wait
echo 'All background processes have exited.'
এটি করার একটি উপায় এখানে:
launch backgroundprocess &
PROC_ID=$!
while kill -0 "$PROC_ID" >/dev/null 2>&1; do
echo "PROCESS IS RUNNING"
done
echo "PROCESS TERMINATED"
exit 0
wait
জন্য আরও উপযুক্ত?
আপনি nohup দিয়ে আপনার প্রক্রিয়া চালাতে পারেন এবং nohup.out ফাইলটি পড়তে শেল স্ক্রিপ্ট লিখতে পারেন যা নোহুপ লগ করতে ব্যবহার করে।
nohup command &
nohup
কিছু লিখবে না nohup.out
; এটি কেবল ফাইলটি তৈরি করে এবং কমান্ডের আউটপুটকে এটি পুনর্নির্দেশ করে। (২) যদি কমান্ডটি কোনও আউটপুট তৈরি করে না, কিছুই লিখিত হবে না nohup.out
এবং এই ধারণাটি কোথাও দ্রুত যায় না। (3) এমনকি যদি command
আউটপুট লেখেন, আপনি কীভাবে বলতে পারেন যে এটি কখন আউটপুট পর্যবেক্ষণ করে শেষ হবে?
lsof
কিনা nohup
তা দেখার আউটপুট পরীক্ষা করে দেখে nohup.out
তবে আমি সম্মতি জানাই যে এটি খুব লোমশ পদ্ধতি method
command
চলতে শুরু করে, nohup
চলে গেছে। (1) হ্যাঁ, আমি একটি সংখ্যা পুনরাবৃত্তি করছি, কারণ আমি দু'বছর আগে যা বলেছিলাম তার পুনরাবৃত্তি করছি: এতে nohup
কিছুই লিখবে না nohup.out
। (৫) হ্যাঁ, আপনি লুপে একটি শেল স্ক্রিপ্ট লিখতে lsof
পারেন এবং nohup.out
এটি এখনও খোলার জন্য দেখুন । তবে এটি ভিন্ন উত্তর হবে। ()) এমনকি যদি আপনি এটি করেন তবে এটি অবিশ্বস্ত হবে। অন্য কোনও প্রক্রিয়া nohup.out
ফাইলটি খুললে কী হবে? আপনি যদি সত্যিই এই নির্দিষ্ট প্রক্রিয়াটি nohup.out
খোলেন কিনা তা পরীক্ষা করতে চান । ()) তবে, আপনি যদি এটি করতে যাচ্ছেন তবে কেন কেবল প্রক্রিয়া চলছে কিনা তা যাচাই করবেন না?