Bir komut Linux üzerinde sıradan paralel işleme (bash, python, ruby... her neyse)
Bir Linux sunucu üzerinde bir kabuk çalıştırmak için gereken komut/bir listesi var.
Ben sadece 10 çalışan işlemleri (sıradan) bir seferde en fazla sahip olmak istiyorum. Bazı işlemleri tamamlamak için birkaç saniye sürer, diğer işlemler çok daha uzun sürer.
Bir işlem "" sırasına ve idam edildi. attı sonraki komutu istiyorum tamamlandığında
Herkes kod var, bu sorunu çözmek için?
Daha fazla ayrıntı:
200 yapılması gereken iş parçaları, bazı tür bir kuyruk var. İşin en fazla 10 adet oluyor aynı anda sahip olmak istiyorum. Bir iş parçacığı bir parça tamamlandığında, çalışmanın bir sonraki parça için sıraya isteyin. Eğer sırada bekleyen çok iş varsa, bu iş parçacığı ölmeli. Bütün konuları ölünce tüm işi yapmışsınız demektir.
Çözmeye çalışıyorum asıl sorun imapsync
yeni bir posta sunucusuna eski posta sunucusundan 200 posta kutusu eşitlemek için kullanıyor. Bazı kullanıcılar, büyük posta kutuları ve uzun zaman tto sync al, Diğerleri hızlı bir şekilde çok küçük posta kutuları ve sync.
CEVAP
, xargs
kabuk sırası için kullanılabilir paralel komut işleme. 3 paralel uyur her zaman sahip olmak için, örneğin, 1 saniye için her uyku ve toplam 10 uyur yürütülüyor
echo {1..10} | xargs -d ' ' -n1 -P3 sh -c 'sleep 1s' _
Ve toplam 4 saniye boyunca uyku olacaktır. Eğer bir isim listesi varsa, ve komutları idam için isimlerini geçirmek, yine paralel olarak 3 komut çalıştırmak ister
cat names | xargs -n1 -P3 process_name
Komutu process_name alice
, process_name bob
yürütülür.
Linux Bash üzerinde Epoch beri saniye ...
sed komut Mac başarısız, ama Linux üze...
nasıl komut satırından argüman olarak ...
Nasıl Linux/Unix Bash bir komut kendi ...
Nasıl bir mesaj linux bash komut dosya...