Semua solusi ini diuji di Ubuntu 14.04:
Solusi 1 (dengan menggunakan perintah ps):
Hanya untuk menambahkan hingga jawaban Pierz, saya akan menyarankan:
while ps axg | grep -vw grep | grep -w process_name > /dev/null; do sleep 1; done
Dalam hal ini, grep -vw grep
pastikan bahwa grep hanya cocok dengan process_name dan bukan grep itu sendiri. Ini memiliki keuntungan mendukung kasus-kasus di mana process_name tidak di akhir baris di ps axg
.
Solusi 2 (dengan menggunakan perintah teratas dan nama proses):
while [[ $(awk '$12=="process_name" {print $0}' <(top -n 1 -b)) ]]; do sleep 1; done
Ganti process_name
dengan nama proses yang muncul ditop -n 1 -b
. Harap simpan tanda kutip.
Untuk melihat daftar proses yang Anda tunggu sampai selesai, Anda dapat menjalankan:
while : ; do p=$(awk '$12=="process_name" {print $0}' <(top -n 1 -b)); [[ $b ]] || break; echo $p; sleep 1; done
Solusi 3 (dengan menggunakan perintah teratas dan ID proses):
while [[ $(awk '$1=="process_id" {print $0}' <(top -n 1 -b)) ]]; do sleep 1; done
Ganti process_id
dengan ID proses program Anda.