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

  • lilstevie89

    lilstevie89

    25 Mart 2011
  • The Bad Tutorials

    The Bad Tuto

    6 EKİM 2009
  • TheRightTire

    TheRightTire

    14 EKİM 2009