SORU
29 HAZİRAN 2009, PAZARTESİ


BEKLEYİN ve herhangi bir işlem "bitirmek"

Herhangi bir işlemin tamamlanması için beklemeniz için herhangi bir bash özelliği var mı? wait Bu komut yalnızca bir alt süreçleri bitirmesini beklemek sağlar. Eğer herhangi bir işlemi tamamlamak için beklemek için herhangi bir yolu varsa bilmek herhangi bir komut geçmeden önce istiyorum.

Bunu mekanik bir şekilde ama eğer bash özelliği ise orada olduğunu bilmek istiyorum aşağıdaki gibidir.

while ps -p `cat $PID_FILE` > /dev/null; do sleep 1; done

CEVAP
14 Temmuz 2009, Salı


Yerleşik yok. İşe yarar bir çözüm için: bir döngü içinde kill -0 kullanın

anywait(){

    for pid in "$@"; do
        while kill -0 "$pid"; do
            sleep 0.5
        done
    done
}

Belirtildiği gibi birkaç yorumcu, eğer sen de istersen bekle işleyen gerekmez ayrıcalığı için sinyalleri göndermek için bulabilirsiniz başka bir yol tespit ederse bu süreç çalışan değiştirmek için kill -0 $pid Ara. Diğer sistemlerde Linux üzerinde, test -d "/proc/$pid" çalışmaları,* *8 (varsa) veya ps | grep ^$pid gibi bir şey kullanmanız gerekebilir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • boburnham

    boburnham

    11 Temmuz 2006
  • Bogdan Gabriel

    Bogdan Gabri

    5 Aralık 2006
  • FUzzyBUnnyBOoties

    FUzzyBUnnyBO

    3 EKİM 2007