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

  • Elefant Traks

    Elefant Trak

    5 HAZİRAN 2007
  • SelmerSaxMan

    SelmerSaxMan

    24 HAZİRAN 2006
  • WhtButterflyLiz

    WhtButterfly

    14 NİSAN 2008