উত্তর:
কীটি হ'ল "অপেক্ষা" কমান্ড:
#!/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খোলেন কিনা তা পরীক্ষা করতে চান । ()) তবে, আপনি যদি এটি করতে যাচ্ছেন তবে কেন কেবল প্রক্রিয়া চলছে কিনা তা যাচাই করবেন না?