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

  • DetroitBORG

    DetroitBORG

    29 Temmuz 2008
  • Jonnyriddlin1

    Jonnyriddlin

    4 Ocak 2007
  • NewsyTech

    NewsyTech

    2 AĞUSTOS 2010