shell - arka plan işlem çıkış kodu almak
Komut CMD sonsuza kadar sürer ana bourne benim kabuk denir.
Aşağıdaki gibi komut dosyasını değiştirmek istiyorum
- Bir arka plan işlemi ($CMD&) olarak paralel komut CMD çalıştırın.
- Ana senaryoda, her birkaç kökenli komut saniye izlemek için bir döngü var. Döngü stdout için bazı mesajlar senaryonun ilerleme gösteren yankıları.
- Oluşturulan komut sonlandırıldığında döngüden çıkın.
Ve oluşturulan işlem çıkış kodu yakalamak raporu.
Biri bana bunu gerçekleştirmek için ipucu verebilir? Teşekkürler Bob
CEVAP
1: bash son plan bu sürecin PID tutar o idam edildi. Bu monitör için ne diyeceğim, her neyse.
4: wait <n>
NUMARASI ile işlemi tamamlayın (işlem tamamlandığında, işlem yapılır emin olana kadar bu ara istemeyebilirsiniz kadar engeller) bekler. wait
döner sonra işlem çıkış kodu değişken $?
döndürülür
2, 3: ps
ps | grep " $! "
süreç hala çalışır durumda olup olmadığını anlayabilirsiniz. Çıkışı anlamak ve bitirmek için nasıl karar vermek size bağlı. (ps | grep
aptal geçirmez değil. Eğer zamanınız varsa daha sağlam süreci hala çalışır durumda olup olmadığını söylemek için bir yol).
Burada bir iskelet senaryo:
# simulate a long process that will have an identifiable exit code
(sleep 15 ; /bin/false) &
my_pid=$!
while ps | grep " $my_pid " # might also need | grep -v grep here
do
echo $my_pid is still in the ps output. Must still be running.
sleep 3
done
echo Oh, it looks like the process is done.
wait $my_pid
my_status=$?
echo The exit status of the process was $my_status
Nasıl arka plan sürecin PID almak için...
XAML veya C# arka plan kodu...
kabuk çıkış komut dosyası arka plan sü...
Nasıl Python kullanırken çıkış kodu al...
Çıkış Kabuk İşlem Çıkış Kodu Dayalı...