Tüm bu çözümler Ubuntu 14.04'te test edilmiştir:
Çözüm 1 (ps komutunu kullanarak):
Sadece Pierz cevabına eklemek için şunu öneririm:
while ps axg | grep -vw grep | grep -w process_name > /dev/null; do sleep 1; done
Bu durumda, grep -vw grep
grep'in grep'in kendisiyle değil, yalnızca process_name ile eşleşmesini sağlar. Process_name öğesinin bir satırın sonunda olmadığı durumları destekleme avantajına sahiptir ps axg
.
Çözüm 2 (top komutunu ve işlem adını kullanarak):
while [[ $(awk '$12=="process_name" {print $0}' <(top -n 1 -b)) ]]; do sleep 1; done
process_name
Görünen işlem adıyla değiştirin top -n 1 -b
. Lütfen tırnak işaretlerini saklayın.
Tamamlanmasını beklediğiniz işlemlerin listesini görmek için şunları çalıştırabilirsiniz:
while : ; do p=$(awk '$12=="process_name" {print $0}' <(top -n 1 -b)); [[ $b ]] || break; echo $p; sleep 1; done
Çözüm 3 (top komutunu ve işlem kimliğini kullanarak):
while [[ $(awk '$1=="process_id" {print $0}' <(top -n 1 -b)) ]]; do sleep 1; done
process_id
Programınızın işlem kimliğiyle değiştirin .