Yani scriptA var hangi yapar:
ssh server1 -- scriptB &
ssh server2 -- scriptB &
ssh server3 -- scriptB &
wait
otherstuffhappens
ScriptB şunları yapar:
rsync -av /important/stuff/. remoteserver:/remote/dir/.
rsync -av /not/so/important/stuff/. remoteserver:/remote/dir/. &
exit
İstediğim sonuç scriptA, şu anda yaptığı komut dosyasının tüm örneklerinin bitmesini bekleyecek, ancak o kadar da önemli olmayan şeylerin arka plan rsync'lerini bekliyor. Bunlar beklemek istemediğim daha büyük dosyalardır.
Nohup, disown ve & arasındaki farkı okudum ve farklı kombinasyonları denedim, ancak aradığım sonucu elde edemiyorum.
Bu noktada oldukça şaşırdım. Herhangi bir yardım mutluluk duyacağız!
wait
tamamen kullanmaktan kaçınabilirsiniz . Yapmam gerekiyordu OP hem çalıştırmak ne tahmin ediyorum rağmenrsync
onları arkatasar anlamına olurdu paralel süreçler, hem (ile&
) ve daha sonra kullanarakwait
. Her durumda, bunun sorunu çözmenin en basit yolu olduğunu ve sorudaki bilgilere dayanarak seçeceğim yöntem olduğunu kabul ediyorum.