Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: Lukáš Vlček 07 Května 2013, 16:47:29

Název: Sériové spouštění skriptů a ukončení BASH
Přispěvatel: Lukáš Vlček 07 Května 2013, 16:47:29
Ahoj,
Potřeboval bych poradit... Mám udělaný skript ve kterém je na konci tento for cyklus
Kód: [Vybrat]
for fname in `ls ${PREFIX}/BENCH/`
do
fn=`basename "${fname}" .bench`
if [ -d "$fn" ]
then
bash ${PREFIX}/program/atalanta.sh "${PREFIX}" "${fn}" "${fname}" "${LIMIT}" &
fi
done
který projede složku kterou potřebuji a pro každý "*.bench" soubor spustí samostatný skript kterému předá jiné parametry...
Problém je v tom že se to pak nechce ukončit... to musím udělat sám přes ctrl+c nevíte jak by se to mělo řešit?
Děkuju za odpověď.
Název: Re:Sériové spouštění skriptů a ukončení BASH
Přispěvatel: menganito 07 Května 2013, 20:15:04
Nie som si celkom istý, načo tam máš ten ampersand na konci 6. riadku, podľa mňa Ti to na tom hanguje.
Název: Re:Sériové spouštění skriptů a ukončení BASH
Přispěvatel: Lukáš Vlček 08 Května 2013, 17:01:10
Ano to je ten důvod, pokud & odstraním tak se to ukončí samo.
Jsou to výpočetní úlohy na clusteru které trvají dlouho (v řádech hodin/dní). Je nežádoucí aby se čekalo na dokončení jednoho skriptu aby se mohl spustit druhý stejný skript ale s jinými parametry (paralelní spuštění). Když v té složce budu mít 10 souborů tak potřebuji aby se pro každý soubor spustil právě ten skript ale s jinými parametry (sériové spouštění). S tím & to funguje jediné je že se to neukončuje a člověk to musí ukončit sám
Název: Re:Sériové spouštění skriptů a ukončení BASH
Přispěvatel: menganito 09 Května 2013, 17:40:19
S paralelizáciou v bashi Ti ja, žiaľ, neporadím.
Název: Re:Sériové spouštění skriptů a ukončení BASH
Přispěvatel: Avogadrus 10 Května 2013, 09:27:16
Spusť si ten script s parametrem "-x" a uvidíš kde to zůstane stát. Nebo ho už spouštěj na pozadí samotný.