इन सभी समाधानों का परीक्षण Ubuntu 14.04 में किया गया है:
समाधान 1 (पीएस कमांड का उपयोग करके):
बस पियरज़ उत्तर को जोड़ने के लिए, मैं सुझाव दूंगा:
while ps axg | grep -vw grep | grep -w process_name > /dev/null; do sleep 1; done
इस मामले में, grep -vw grep
यह सुनिश्चित करता है कि grep केवल process_name से मेल खाता है न कि खुद grep। इसमें उन मामलों का समर्थन करने का लाभ है, जहां process_name एक पंक्ति के अंत में नहीं है ps axg
।
समाधान 2 (शीर्ष आदेश और प्रक्रिया नाम का उपयोग करके):
while [[ $(awk '$12=="process_name" {print $0}' <(top -n 1 -b)) ]]; do sleep 1; done
इसमें process_name
दिखाई देने वाली प्रक्रिया नाम से बदलें top -n 1 -b
। कृपया उद्धरण चिह्नों को रखें।
उन प्रक्रियाओं की सूची देखने के लिए जिन्हें आप समाप्त होने की प्रतीक्षा करते हैं, आप चला सकते हैं:
while : ; do p=$(awk '$12=="process_name" {print $0}' <(top -n 1 -b)); [[ $b ]] || break; echo $p; sleep 1; done
समाधान 3 (शीर्ष कमांड और प्रक्रिया आईडी का उपयोग करके):
while [[ $(awk '$1=="process_id" {print $0}' <(top -n 1 -b)) ]]; do sleep 1; done
process_id
अपने प्रोग्राम की प्रोसेस आईडी से बदलें ।